Class SearchLogHelper

java.lang.Object
org.codelibs.fess.helper.SearchLogHelper

public class SearchLogHelper extends Object
Helper class for managing search logs.
  • Field Details

    • userCheckInterval

      protected long userCheckInterval
      Interval for checking user information in milliseconds (default: 10 minutes).
    • userInfoCacheSize

      protected int userInfoCacheSize
      Maximum size of the user information cache.
    • searchLogQueue

      protected Queue<org.codelibs.fess.opensearch.log.exentity.SearchLog> searchLogQueue
      Queue for storing search logs.
    • clickLogQueue

      protected Queue<org.codelibs.fess.opensearch.log.exentity.ClickLog> clickLogQueue
      Queue for storing click logs.
    • userInfoCache

      protected com.google.common.cache.LoadingCache<String,org.codelibs.fess.opensearch.log.exentity.UserInfo> userInfoCache
      Cache for storing user information.
    • loggerName

      protected String loggerName
      Name of the logger for search logs.
    • searchLogLogger

      protected org.apache.logging.log4j.Logger searchLogLogger
      Logger for search logs.
    • objectMapper

      protected com.fasterxml.jackson.databind.ObjectMapper objectMapper
      ObjectMapper for JSON processing.
  • Constructor Details

    • SearchLogHelper

      public SearchLogHelper()
      Default constructor for SearchLogHelper.
  • Method Details

    • init

      @PostConstruct public void init()
      Initializes the SearchLogHelper.
    • addSearchLog

      public void addSearchLog(SearchRequestParams params, LocalDateTime requestedTime, String queryId, String query, int pageStart, int pageSize, QueryResponseList queryResponseList)
      Adds a search log to the queue.
      Parameters:
      params - The search request parameters.
      requestedTime - The time the search was requested.
      queryId - The ID of the search query.
      query - The search query.
      pageStart - The starting page number.
      pageSize - The size of the page.
      queryResponseList - The list of query responses.
    • createSearchLogContext

      protected SearchLogHelper.SearchLogContext createSearchLogContext(SearchRequestParams params, org.codelibs.fess.mylasta.direction.FessConfig fessConfig)
      Resolves the runtime dependencies needed to build a SearchLog.
      Parameters:
      params - The search request parameters.
      fessConfig - The Fess configuration.
      Returns:
      The resolved search log context.
    • createSearchLog

      protected void createSearchLog(SearchRequestParams params, LocalDateTime requestedTime, String queryId, String query, int pageStart, int pageSize, QueryResponseList queryResponseList, SearchLogHelper.SearchLogContext context)
      Builds a SearchLog from the given parameters and context, then adds it to the queue.
      Parameters:
      params - The search request parameters.
      requestedTime - The time the search was requested.
      queryId - The ID of the search query.
      query - The search query string.
      pageStart - The start position of the page.
      pageSize - The size of the page.
      queryResponseList - The list of query responses.
      context - The search log context holding resolved dependencies.
    • determineAccessType

      protected String determineAccessType(Object accessType)
      Returns the access type string from the given request attribute value, defaulting to web.
      Parameters:
      accessType - The access type attribute value from the request.
      Returns:
      The access type string.
    • addDocumentsInResponse

      protected void addDocumentsInResponse(QueryResponseList queryResponseList, org.codelibs.fess.opensearch.log.exentity.SearchLog searchLog)
      Adds documents in the response to the search log.
      Parameters:
      queryResponseList - The list of query responses.
      searchLog - The search log.
    • addClickLog

      public void addClickLog(org.codelibs.fess.opensearch.log.exentity.ClickLog clickLog)
      Adds a click log to the queue.
      Parameters:
      clickLog - The click log.
    • storeSearchLog

      public void storeSearchLog()
      Stores search logs from the queue.
    • storeClickLogFromQueue

      protected void storeClickLogFromQueue()
      Stores click logs from the queue.
    • storeSearchLogFromQueue

      protected void storeSearchLogFromQueue()
      Stores search logs from the queue.
    • getClickCount

      public int getClickCount(String url)
      Gets the click count for a URL.
      Parameters:
      url - The URL.
      Returns:
      The click count.
    • getFavoriteCount

      public long getFavoriteCount(String url)
      Gets the favorite count for a URL.
      Parameters:
      url - The URL.
      Returns:
      The favorite count.
    • storeUserInfo

      protected org.codelibs.fess.opensearch.log.exentity.UserInfo storeUserInfo(String userCode)
      Stores user information.
      Parameters:
      userCode - The user code.
      Returns:
      The user information.
    • getUserInfo

      public org.dbflute.optional.OptionalEntity<org.codelibs.fess.opensearch.log.exentity.UserInfo> getUserInfo(String userCode)
      Gets user information.
      Parameters:
      userCode - The user code.
      Returns:
      The user information.
    • processSearchLogQueue

      protected void processSearchLogQueue(Queue<org.codelibs.fess.opensearch.log.exentity.SearchLog> queue)
      Processes the search log queue.
      Parameters:
      queue - The search log queue.
    • processSearchLog

      protected void processSearchLog(List<org.codelibs.fess.opensearch.log.exentity.SearchLog> searchLogList)
      Processes the search log list.
      Parameters:
      searchLogList - The search log list.
    • processUserInfoLog

      protected void processUserInfoLog(List<org.codelibs.fess.opensearch.log.exentity.SearchLog> searchLogList, Map<String,org.codelibs.fess.opensearch.log.exentity.UserInfo> userInfoMap)
      Processes user information logs.
      Parameters:
      searchLogList - The search log list.
      userInfoMap - The user information map.
    • storeSearchLogList

      protected void storeSearchLogList(List<org.codelibs.fess.opensearch.log.exentity.SearchLog> searchLogList)
      Stores a list of search logs.
      Parameters:
      searchLogList - The search log list.
    • processClickLogQueue

      protected void processClickLogQueue(Queue<org.codelibs.fess.opensearch.log.exentity.ClickLog> queue)
      Processes the click log queue.
      Parameters:
      queue - The click log queue.
    • updateClickFieldInIndex

      protected void updateClickFieldInIndex(Map<String,Integer> clickCountMap)
      Updates the click field in the index.
      Parameters:
      clickCountMap - The click count map.
    • processClickLog

      protected void processClickLog(List<org.codelibs.fess.opensearch.log.exentity.ClickLog> clickLogList)
      Processes a list of click logs.
      Parameters:
      clickLogList - The click log list.
    • writeSearchLogEvent

      public void writeSearchLogEvent(SearchLogEvent event)
      Writes a search log event.
      Parameters:
      event - The search log event.
    • toSource

      protected Map<String,Object> toSource(SearchLogEvent searchLogEvent)
      Converts a search log event to a source map.
      Parameters:
      searchLogEvent - The search log event.
      Returns:
      The source map.
    • toLowerHyphen

      protected Map<String,Object> toLowerHyphen(Map<String,Object> source)
      Converts a map to lower hyphen case.
      Parameters:
      source - The source map.
      Returns:
      The converted map.
    • setUserCheckInterval

      public void setUserCheckInterval(long userCheckInterval)
      Sets the user check interval.
      Parameters:
      userCheckInterval - The user check interval.
    • setUserInfoCacheSize

      public void setUserInfoCacheSize(int userInfoCacheSize)
      Sets the user information cache size.
      Parameters:
      userInfoCacheSize - The user information cache size.
    • setLoggerName

      public void setLoggerName(String loggerName)
      Sets the logger name.
      Parameters:
      loggerName - The logger name.