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.StringPool;
023
024
028 public class CollatedSpellCheckHitsProcessor 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.isCollatedSpellCheckResultEnabled()) {
037 return true;
038 }
039
040 int collatedSpellCheckResultScoresThreshold =
041 queryConfig.getCollatedSpellCheckResultScoresThreshold();
042
043 if (hits.getLength() >= collatedSpellCheckResultScoresThreshold) {
044 return true;
045 }
046
047 String collatedKeywords = SearchEngineUtil.spellCheckKeywords(
048 searchContext);
049
050 if (collatedKeywords.equals(searchContext.getKeywords())) {
051 collatedKeywords = StringPool.BLANK;
052 }
053
054 hits.setCollatedSpellCheckResult(collatedKeywords);
055
056 return true;
057 }
058
059 }