|
@@ -554,19 +554,24 @@ public class SearchServiceImpl implements SearchService {
|
|
|
if (Boolean.valueOf(duplicate)) {
|
|
|
DuplicateFilter duplicateFilter = new DuplicateFilter(SearchConstants.PRODUCT_PRIVATE_PCMPCODE_FIELD);
|
|
|
logger.info(booleanQuery.toString());
|
|
|
- return getDocuments(SearchConstants.PRODUCTS_PRIVATE_TABLE_NAME, booleanQuery, new Sort(sortProduct(keyword)), page, size, duplicateFilter);
|
|
|
+ return getDocuments(SearchConstants.PRODUCTS_PRIVATE_TABLE_NAME, booleanQuery, new Sort(sortProduct()), page, size, duplicateFilter);
|
|
|
} else {
|
|
|
logger.info(booleanQuery.toString());
|
|
|
- return getDocuments(SearchConstants.PRODUCTS_PRIVATE_TABLE_NAME, booleanQuery, new Sort(sortProduct(keyword)), page, size);
|
|
|
+ return getDocuments(SearchConstants.PRODUCTS_PRIVATE_TABLE_NAME, booleanQuery, new Sort(sortProduct()), page, size);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @return 物料排序规则
|
|
|
*/
|
|
|
- private SortField sortProduct(String keyword) {
|
|
|
+ private SortField[] sortProduct() {
|
|
|
+ List<SortField> sortFieldList = new ArrayList<>();
|
|
|
// id
|
|
|
- return new SortField(SearchConstants.PRODUCT_PRIVATE_ID_FIELD, Type.LONG, true);
|
|
|
+ sortFieldList.add(new SortField(SearchConstants.PRODUCT_PRIVATE_ID_FIELD, Type.LONG, true));
|
|
|
+ sortFieldList.add(new SortField(SearchConstants.PRODUCT_PRIVATE_ATTACH_FIELD, Type.DOUBLE, true));
|
|
|
+ SortField[] sortFields = new SortField[sortFieldList.size()];
|
|
|
+ sortFieldList.toArray(sortFields);
|
|
|
+ return sortFields;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -1858,7 +1863,7 @@ public class SearchServiceImpl implements SearchService {
|
|
|
|
|
|
BooleanQuery booleanQuery = queryProducts(keyword, keywordFields, tokenized);
|
|
|
logger.info(booleanQuery.toString());
|
|
|
- SPage<Document> documents = getDocuments(SearchConstants.PRODUCTS_PRIVATE_TABLE_NAME, booleanQuery, new Sort(sortProduct(keyword)), pageParams.getPage(), pageParams.getSize());
|
|
|
+ SPage<Document> documents = getDocuments(SearchConstants.PRODUCTS_PRIVATE_TABLE_NAME, booleanQuery, new Sort(sortProduct()), pageParams.getPage(), pageParams.getSize());
|
|
|
|
|
|
SPage<Long> sPage = new SPage<>(documents.getTotalPage(), documents.getTotalElement(), documents.getPage(), documents.getSize(), documents.isFirst(), documents.isLast());
|
|
|
List<Long> productIds = new ArrayList<>();
|
|
@@ -2062,6 +2067,7 @@ public class SearchServiceImpl implements SearchService {
|
|
|
new SortField(SearchConstants.GOODS_PR_KIND_FIELD, new StringFieldComparatorSource(keyword, false)),
|
|
|
new SortField(SearchConstants.GOODS_CMP_CODE_FIELD, new StringFieldComparatorSource(keyword, false)),
|
|
|
// new SortField(SearchConstants.GOODS_KI_NAME_CN_UNTOKENIZED_FIELD, new StringFieldComparatorSource(keyword, false)),
|
|
|
+ new SortField(SearchConstants.GOODS_GO_ATTACH_FIELD, Type.DOUBLE, true),
|
|
|
sortField(SearchConstants.GOODS_GO_UPDATE_DATE_FIELD, Type.LONG, true, Long.MIN_VALUE)
|
|
|
));
|
|
|
SortField[] sortFields = new SortField[sortFieldList.size()];
|