|
|
package com.yoho.search.service.servicenew.impl;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.elasticsearch.common.lucene.search.function.CombineFunction;
|
|
|
import org.elasticsearch.index.query.BoolQueryBuilder;
|
|
|
import org.elasticsearch.index.query.MatchQueryBuilder;
|
|
|
import org.elasticsearch.index.query.MultiMatchQueryBuilder;
|
|
|
import org.elasticsearch.index.query.QueryBuilder;
|
|
|
import org.elasticsearch.index.query.QueryBuilders;
|
|
|
import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder;
|
|
|
import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders;
|
|
|
import org.elasticsearch.search.sort.SortBuilder;
|
|
|
import org.elasticsearch.search.sort.SortBuilders;
|
|
|
import org.elasticsearch.search.sort.SortOrder;
|
|
|
import org.elasticsearch.search.suggest.SuggestBuilders;
|
|
|
import org.elasticsearch.search.suggest.term.TermSuggestion;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.ApplicationEventPublisher;
|
|
|
import org.springframework.context.ApplicationEventPublisherAware;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yoho.error.event.SearchEvent;
|
|
|
import com.yoho.search.base.utils.CharUtils;
|
...
|
...
|
@@ -47,6 +17,26 @@ import com.yoho.search.service.utils.HttpServletRequestUtils; |
|
|
import com.yoho.search.service.utils.SearchRequestParams;
|
|
|
import com.yoho.search.service.vo.SearchApiResult;
|
|
|
import com.yoho.search.service.vo.SuggestApiResult;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.elasticsearch.common.lucene.search.function.CombineFunction;
|
|
|
import org.elasticsearch.index.query.*;
|
|
|
import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder;
|
|
|
import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders;
|
|
|
import org.elasticsearch.search.sort.SortBuilder;
|
|
|
import org.elasticsearch.search.sort.SortBuilders;
|
|
|
import org.elasticsearch.search.sort.SortOrder;
|
|
|
import org.elasticsearch.search.suggest.SuggestBuilders;
|
|
|
import org.elasticsearch.search.suggest.term.TermSuggestion;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.ApplicationEventPublisher;
|
|
|
import org.springframework.context.ApplicationEventPublisherAware;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class SuggestServiceImpl implements ISuggestService, ApplicationEventPublisherAware {
|
...
|
...
|
@@ -257,7 +247,7 @@ public class SuggestServiceImpl implements ISuggestService, ApplicationEventPubl |
|
|
JSONObject suggestTipResult = suggestTipsBySuggestIndex(paramMap);
|
|
|
if (suggestTipResult == null) {
|
|
|
// 2.1) 可能是ES发生异常 如果搜索不到相关是应该是集合为空而不是对象为null
|
|
|
return null;
|
|
|
return defaultSuggestTips();
|
|
|
}
|
|
|
|
|
|
List<String> resultTerms = (List<String>) suggestTipResult.get("terms_suggestion");
|
...
|
...
|
@@ -275,7 +265,7 @@ public class SuggestServiceImpl implements ISuggestService, ApplicationEventPubl |
|
|
return defaultSuggestTips();
|
|
|
} catch (Exception e) {
|
|
|
logger.error("[func=suggestTips]Get suggestion by keyword [" + queryWord + "] failed!", e);
|
|
|
return null;
|
|
|
return defaultSuggestTips();
|
|
|
}
|
|
|
}
|
|
|
|
...
|
...
|
|