|
|
@@ -58,7 +58,7 @@ public class SearchServiceImpl implements SearchService {
|
|
|
List<Long> ids = new ArrayList<Long>();
|
|
|
BooleanQuery booleanQuery = SearchUtils.getBooleanQuery(SearchConstants.KIND_NAMECN_FIELD, keyword);
|
|
|
logger.info(booleanQuery.toString());
|
|
|
- SPage<Document> documents = SearchUtils.getDocuments(SearchConstants.KIND_TABLE_NAME, booleanQuery, page, size);
|
|
|
+ SPage<Document> documents = SearchUtils.getDocuments(SearchConstants.KIND_TABLE_NAME, booleanQuery, sortKind(), page, size);
|
|
|
SPage<Long> sPage = new SPage<Long>(documents.getTotalPage(), documents.getTotalElement(), documents.getPage(),
|
|
|
documents.getSize(), documents.isFirst(), documents.isLast());
|
|
|
for (Document document : documents.getContent()) {
|
|
|
@@ -76,7 +76,7 @@ public class SearchServiceImpl implements SearchService {
|
|
|
List<Map<String, Object>> kinds = new ArrayList<Map<String, Object>>();
|
|
|
BooleanQuery booleanQuery = SearchUtils.getBooleanQuery(SearchConstants.KIND_NAMECN_FIELD, keyword);
|
|
|
logger.info(booleanQuery.toString());
|
|
|
- SPage<Document> documents = SearchUtils.getDocuments(SearchConstants.KIND_TABLE_NAME, booleanQuery, page, size);
|
|
|
+ SPage<Document> documents = SearchUtils.getDocuments(SearchConstants.KIND_TABLE_NAME, booleanQuery, sortKind(), page, size);
|
|
|
SPage<Map<String, Object>> sPage = new SPage<Map<String, Object>>(documents.getTotalPage(),
|
|
|
documents.getTotalElement(), documents.getPage(), documents.getSize(), documents.isFirst(),
|
|
|
documents.isLast());
|
|
|
@@ -90,6 +90,18 @@ public class SearchServiceImpl implements SearchService {
|
|
|
return sPage;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @return 类目排序规则
|
|
|
+ */
|
|
|
+ private Sort sortKind() {
|
|
|
+ // 访问量 > 搜索次数
|
|
|
+ SortField visitCountSortField = new SortField(SearchConstants.KIND_VISIT_COUNT_FIELD, Type.LONG, true);
|
|
|
+ visitCountSortField.setMissingValue(Long.MIN_VALUE);
|
|
|
+ SortField searchCountSortField = new SortField(SearchConstants.KIND_SEARCH_COUNT_FIELD, Type.LONG, true);
|
|
|
+ searchCountSortField.setMissingValue(Long.MIN_VALUE);
|
|
|
+ return new Sort(visitCountSortField, searchCountSortField);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public SPage<Long> getBrandIds(String keyword, Integer page, Integer size) {
|
|
|
if (SearchUtils.isKeywordInvalid(keyword)) {
|