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.util.ArrayUtil;
023
024
028 public class QuerySuggestionHitsProcessor implements HitsProcessor {
029
030 @Override
031 public boolean process(SearchContext searchContext, Hits hits)
032 throws SearchException {
033
034 QueryConfig queryConfig = searchContext.getQueryConfig();
035
036 if (!queryConfig.isQuerySuggestionEnabled()) {
037 return true;
038 }
039
040 if (hits.getLength() >=
041 queryConfig.getQuerySuggestionScoresThreshold()) {
042
043 return true;
044 }
045
046 String[] querySuggestions = SearchEngineUtil.suggestKeywordQueries(
047 searchContext, queryConfig.getQuerySuggestionMax());
048
049 querySuggestions = ArrayUtil.remove(
050 querySuggestions, searchContext.getKeywords());
051
052 hits.setQuerySuggestions(querySuggestions);
053
054 return true;
055 }
056
057 }