|
@@ -10,6 +10,7 @@ import com.yoho.search.core.es.utils.IgnoreSomeException; |
|
@@ -10,6 +10,7 @@ import com.yoho.search.core.es.utils.IgnoreSomeException; |
10
|
import com.yoho.search.service.service.SearchCacheService;
|
10
|
import com.yoho.search.service.service.SearchCacheService;
|
11
|
import com.yoho.search.service.service.SearchCommonService;
|
11
|
import com.yoho.search.service.service.SearchCommonService;
|
12
|
import com.yoho.search.service.service.SearchDynamicConfigService;
|
12
|
import com.yoho.search.service.service.SearchDynamicConfigService;
|
|
|
13
|
+import com.yoho.search.service.service.SearchKeyWordService;
|
13
|
import com.yoho.search.service.servicenew.ISuggestService;
|
14
|
import com.yoho.search.service.servicenew.ISuggestService;
|
14
|
import com.yoho.search.service.utils.HttpServletRequestUtils;
|
15
|
import com.yoho.search.service.utils.HttpServletRequestUtils;
|
15
|
import com.yoho.search.service.utils.SearchRequestParams;
|
16
|
import com.yoho.search.service.utils.SearchRequestParams;
|
|
@@ -58,6 +59,8 @@ public class SuggestServiceImpl implements ISuggestService, ApplicationEventPubl |
|
@@ -58,6 +59,8 @@ public class SuggestServiceImpl implements ISuggestService, ApplicationEventPubl |
58
|
private SearchCacheService searchCacheService;
|
59
|
private SearchCacheService searchCacheService;
|
59
|
@Autowired
|
60
|
@Autowired
|
60
|
private SearchDynamicConfigService searchDynamicConfigService;
|
61
|
private SearchDynamicConfigService searchDynamicConfigService;
|
|
|
62
|
+ @Autowired
|
|
|
63
|
+ private SearchKeyWordService searchKeyWordService;
|
61
|
|
64
|
|
62
|
private ApplicationEventPublisher publisher;
|
65
|
private ApplicationEventPublisher publisher;
|
63
|
|
66
|
|
|
@@ -290,6 +293,7 @@ public class SuggestServiceImpl implements ISuggestService, ApplicationEventPubl |
|
@@ -290,6 +293,7 @@ public class SuggestServiceImpl implements ISuggestService, ApplicationEventPubl |
290
|
}
|
293
|
}
|
291
|
|
294
|
|
292
|
String queryWord = paramMap.get(SearchRequestParams.PARAM_SEARCH_KEYWORD).toLowerCase();
|
295
|
String queryWord = paramMap.get(SearchRequestParams.PARAM_SEARCH_KEYWORD).toLowerCase();
|
|
|
296
|
+ searchKeyWordService.recordSuggestTip(queryWord);
|
293
|
String dest = getSuggestConversionDestBySource(queryWord);
|
297
|
String dest = getSuggestConversionDestBySource(queryWord);
|
294
|
if (StringUtils.isEmpty(dest)) {
|
298
|
if (StringUtils.isEmpty(dest)) {
|
295
|
return new ArrayList<>();
|
299
|
return new ArrayList<>();
|
|
@@ -300,7 +304,7 @@ public class SuggestServiceImpl implements ISuggestService, ApplicationEventPubl |
|
@@ -300,7 +304,7 @@ public class SuggestServiceImpl implements ISuggestService, ApplicationEventPubl |
300
|
List<String> keywordsInDest = Arrays.stream(dest.split(",")).map(String::toLowerCase).map(String::trim).collect(Collectors.toList());
|
304
|
List<String> keywordsInDest = Arrays.stream(dest.split(",")).map(String::toLowerCase).map(String::trim).collect(Collectors.toList());
|
301
|
QueryBuilder queryBuilder = QueryBuilders.termsQuery("keyword.keyword_lowercase", keywordsInDest);
|
305
|
QueryBuilder queryBuilder = QueryBuilders.termsQuery("keyword.keyword_lowercase", keywordsInDest);
|
302
|
FunctionScoreQueryBuilder functionScoreQueryBuilder = new FunctionScoreQueryBuilder(queryBuilder);
|
306
|
FunctionScoreQueryBuilder functionScoreQueryBuilder = new FunctionScoreQueryBuilder(queryBuilder);
|
303
|
- functionScoreQueryBuilder.add(QueryBuilders.termQuery("type",2), ScoreFunctionBuilders.weightFactorFunction(keywordsInDest.size()));
|
307
|
+ functionScoreQueryBuilder.add(QueryBuilders.termQuery("type", 2), ScoreFunctionBuilders.weightFactorFunction(keywordsInDest.size()));
|
304
|
for (int index = 0; index < keywordsInDest.size(); index++) {
|
308
|
for (int index = 0; index < keywordsInDest.size(); index++) {
|
305
|
// 根据顺序从高到低加分
|
309
|
// 根据顺序从高到低加分
|
306
|
functionScoreQueryBuilder.add(QueryBuilders.termQuery("keyword.keyword_lowercase", keywordsInDest.get(index)),
|
310
|
functionScoreQueryBuilder.add(QueryBuilders.termQuery("keyword.keyword_lowercase", keywordsInDest.get(index)),
|