Package org.codelibs.fess.helper
Class SearchLogHelper
java.lang.Object
org.codelibs.fess.helper.SearchLogHelper
Helper class for managing search logs.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classHolds resolved dependencies for search log creation, decoupled from ComponentUtil. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Queue<org.codelibs.fess.opensearch.log.exentity.ClickLog> Queue for storing click logs.protected StringName of the logger for search logs.protected com.fasterxml.jackson.databind.ObjectMapperObjectMapper for JSON processing.protected org.apache.logging.log4j.LoggerLogger for search logs.protected Queue<org.codelibs.fess.opensearch.log.exentity.SearchLog> Queue for storing search logs.protected longInterval for checking user information in milliseconds (default: 10 minutes).protected com.google.common.cache.LoadingCache<String, org.codelibs.fess.opensearch.log.exentity.UserInfo> Cache for storing user information.protected intMaximum size of the user information cache. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddClickLog(org.codelibs.fess.opensearch.log.exentity.ClickLog clickLog) Adds a click log to the queue.protected voidaddDocumentsInResponse(QueryResponseList queryResponseList, org.codelibs.fess.opensearch.log.exentity.SearchLog searchLog) Adds documents in the response to the search log.voidaddSearchLog(SearchRequestParams params, LocalDateTime requestedTime, String queryId, String query, int pageStart, int pageSize, QueryResponseList queryResponseList) Adds a search log to the queue.protected voidcreateSearchLog(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.protected SearchLogHelper.SearchLogContextcreateSearchLogContext(SearchRequestParams params, org.codelibs.fess.mylasta.direction.FessConfig fessConfig) Resolves the runtime dependencies needed to build a SearchLog.protected StringdetermineAccessType(Object accessType) Returns the access type string from the given request attribute value, defaulting to web.intgetClickCount(String url) Gets the click count for a URL.longgetFavoriteCount(String url) Gets the favorite count for a URL.org.dbflute.optional.OptionalEntity<org.codelibs.fess.opensearch.log.exentity.UserInfo> getUserInfo(String userCode) Gets user information.voidinit()Initializes the SearchLogHelper.protected voidprocessClickLog(List<org.codelibs.fess.opensearch.log.exentity.ClickLog> clickLogList) Processes a list of click logs.protected voidprocessClickLogQueue(Queue<org.codelibs.fess.opensearch.log.exentity.ClickLog> queue) Processes the click log queue.protected voidprocessSearchLog(List<org.codelibs.fess.opensearch.log.exentity.SearchLog> searchLogList) Processes the search log list.protected voidprocessSearchLogQueue(Queue<org.codelibs.fess.opensearch.log.exentity.SearchLog> queue) Processes the search log queue.protected voidprocessUserInfoLog(List<org.codelibs.fess.opensearch.log.exentity.SearchLog> searchLogList, Map<String, org.codelibs.fess.opensearch.log.exentity.UserInfo> userInfoMap) Processes user information logs.voidsetLoggerName(String loggerName) Sets the logger name.voidsetUserCheckInterval(long userCheckInterval) Sets the user check interval.voidsetUserInfoCacheSize(int userInfoCacheSize) Sets the user information cache size.protected voidStores click logs from the queue.voidStores search logs from the queue.protected voidStores search logs from the queue.protected voidstoreSearchLogList(List<org.codelibs.fess.opensearch.log.exentity.SearchLog> searchLogList) Stores a list of search logs.protected org.codelibs.fess.opensearch.log.exentity.UserInfostoreUserInfo(String userCode) Stores user information.toLowerHyphen(Map<String, Object> source) Converts a map to lower hyphen case.toSource(SearchLogEvent searchLogEvent) Converts a search log event to a source map.protected voidupdateClickFieldInIndex(Map<String, Integer> clickCountMap) Updates the click field in the index.voidWrites a search log event.
-
Field Details
-
userCheckInterval
protected long userCheckIntervalInterval for checking user information in milliseconds (default: 10 minutes). -
userInfoCacheSize
protected int userInfoCacheSizeMaximum size of the user information cache. -
searchLogQueue
Queue for storing search logs. -
clickLogQueue
Queue for storing click logs. -
userInfoCache
protected com.google.common.cache.LoadingCache<String,org.codelibs.fess.opensearch.log.exentity.UserInfo> userInfoCacheCache for storing user information. -
loggerName
Name of the logger for search logs. -
searchLogLogger
protected org.apache.logging.log4j.Logger searchLogLoggerLogger for search logs. -
objectMapper
protected com.fasterxml.jackson.databind.ObjectMapper objectMapperObjectMapper 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
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
Gets the click count for a URL.- Parameters:
url- The URL.- Returns:
- The click count.
-
getFavoriteCount
Gets the favorite count for a URL.- Parameters:
url- The URL.- Returns:
- The favorite count.
-
storeUserInfo
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
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
Writes a search log event.- Parameters:
event- The search log event.
-
toSource
Converts a search log event to a source map.- Parameters:
searchLogEvent- The search log event.- Returns:
- The source map.
-
toLowerHyphen
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
Sets the logger name.- Parameters:
loggerName- The logger name.
-