|
|
@@ -84,18 +84,19 @@ public class SearchServiceImpl implements SearchService {
|
|
|
}
|
|
|
BooleanQuery booleanQuery = SearchUtils.getBooleanQuery(SearchConstants.KIND_NAMECN_FIELD, keyword);
|
|
|
logger.info(booleanQuery.toString());
|
|
|
- return SearchUtils.getDocuments(SearchConstants.KIND_TABLE_NAME, booleanQuery, new Sort(sortKind()), page, size);
|
|
|
+ return SearchUtils.getDocuments(SearchConstants.KIND_TABLE_NAME, booleanQuery, new Sort(sortKind(keyword)), page, size);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @return 类目排序规则
|
|
|
*/
|
|
|
- private SortField[] sortKind() {
|
|
|
+ private SortField[] sortKind(String keyword) {
|
|
|
// 分数 > 访问量 > 搜索次数
|
|
|
return new SortField[]{
|
|
|
- SortField.FIELD_SCORE,
|
|
|
+ new SortField(SearchConstants.KIND_NAMECN_UNTOKENIZED_FIELD, new StringFieldComparatorSource(keyword)),
|
|
|
sortField(SearchConstants.KIND_VISIT_COUNT_FIELD, Type.LONG, true, Long.MIN_VALUE),
|
|
|
- sortField(SearchConstants.KIND_SEARCH_COUNT_FIELD, Type.LONG, true, Long.MIN_VALUE)
|
|
|
+ sortField(SearchConstants.KIND_SEARCH_COUNT_FIELD, Type.LONG, true, Long.MIN_VALUE),
|
|
|
+ SortField.FIELD_SCORE
|
|
|
};
|
|
|
}
|
|
|
|