001
014
015 package com.liferay.portal.kernel.search.hits;
016
017 import com.liferay.portal.kernel.search.Hits;
018 import com.liferay.portal.kernel.search.QueryConfig;
019 import com.liferay.portal.kernel.search.SearchContext;
020 import com.liferay.portal.kernel.search.SearchEngineUtil;
021 import com.liferay.portal.kernel.search.SearchException;
022 import com.liferay.portal.kernel.search.suggest.SuggestionConstants;
023
024 import java.util.Locale;
025
026
030 public class QueryIndexingHitsProcessor implements HitsProcessor {
031
032 @Override
033 public boolean process(SearchContext searchContext, Hits hits)
034 throws SearchException {
035
036 QueryConfig queryConfig = searchContext.getQueryConfig();
037
038 if (!queryConfig.isQueryIndexingEnabled()) {
039 return true;
040 }
041
042 if (hits.getLength() >= queryConfig.getQueryIndexingThreshold()) {
043 addDocument(
044 searchContext.getCompanyId(), searchContext.getKeywords(),
045 searchContext.getLocale());
046 }
047
048 return true;
049 }
050
051 protected void addDocument(long companyId, String keywords, Locale locale)
052 throws SearchException {
053
054 SearchEngineUtil.indexKeyword(
055 companyId, keywords, 0, SuggestionConstants.TYPE_QUERY_SUGGESTION,
056 locale);
057 }
058
059 }