|
@@ -860,13 +860,6 @@ public class SearchServiceImpl implements SearchService {
|
|
|
try {
|
|
try {
|
|
|
BooleanQuery booleanQuery = queryGoods(keyword, keywordFields, tokenized);
|
|
BooleanQuery booleanQuery = queryGoods(keyword, keywordFields, tokenized);
|
|
|
Map<FilterField, Object> filters = pageParams.getFilters();
|
|
Map<FilterField, Object> filters = pageParams.getFilters();
|
|
|
- // 筛选状态
|
|
|
|
|
- if (!CollectionUtils.isEmpty(filters) && !StringUtils.isEmpty(filters.get(FilterField.GOODS_STATUS))) {
|
|
|
|
|
- filter(filters.get(FilterField.GOODS_STATUS), SearchConstants.GOODS_GO_STATUS_FIELD, booleanQuery);
|
|
|
|
|
- } else {
|
|
|
|
|
- // 未指定时,过滤默认状态
|
|
|
|
|
- filter(Arrays.asList(TradeGoods.VALID_STATUS), SearchConstants.GOODS_GO_STATUS_FIELD, booleanQuery);
|
|
|
|
|
- }
|
|
|
|
|
if (!CollectionUtils.isEmpty(filters)) {
|
|
if (!CollectionUtils.isEmpty(filters)) {
|
|
|
// 筛选类目
|
|
// 筛选类目
|
|
|
if (!StringUtils.isEmpty(filters.get(FilterField.GOODS_KINDID))) {
|
|
if (!StringUtils.isEmpty(filters.get(FilterField.GOODS_KINDID))) {
|
|
@@ -888,6 +881,11 @@ public class SearchServiceImpl implements SearchService {
|
|
|
filter(filters.get(FilterField.GOODS_CRNAME), SearchConstants.GOODS_CRNAME_FIELD, booleanQuery);
|
|
filter(filters.get(FilterField.GOODS_CRNAME), SearchConstants.GOODS_CRNAME_FIELD, booleanQuery);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 筛选状态
|
|
|
|
|
+ if (!StringUtils.isEmpty(filters.get(FilterField.GOODS_STATUS))) {
|
|
|
|
|
+ filter(filters.get(FilterField.GOODS_STATUS), SearchConstants.GOODS_GO_STATUS_FIELD, booleanQuery);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// 价格筛选
|
|
// 价格筛选
|
|
|
Object minPriceRmb = filters.get(FilterField.GOODS_MINPRICERMB);
|
|
Object minPriceRmb = filters.get(FilterField.GOODS_MINPRICERMB);
|
|
|
Object maxPriceRmb = filters.get(FilterField.GOODS_MAXPRICERMB);
|
|
Object maxPriceRmb = filters.get(FilterField.GOODS_MAXPRICERMB);
|
|
@@ -1083,32 +1081,28 @@ public class SearchServiceImpl implements SearchService {
|
|
|
List<Map<String, Object>> result = new ArrayList<>();
|
|
List<Map<String, Object>> result = new ArrayList<>();
|
|
|
try {
|
|
try {
|
|
|
BooleanQuery booleanQuery = queryGoods(keyword, keywordFields, tokenized);
|
|
BooleanQuery booleanQuery = queryGoods(keyword, keywordFields, tokenized);
|
|
|
- // 筛选状态
|
|
|
|
|
- if (!CollectionUtils.isEmpty(filters) && !StringUtils.isEmpty(filters.get(FilterField.GOODS_STATUS))) {
|
|
|
|
|
- filter(filters.get(FilterField.GOODS_STATUS), SearchConstants.GOODS_GO_STATUS_FIELD, booleanQuery);
|
|
|
|
|
- } else {
|
|
|
|
|
- // 未指定时,过滤默认状态
|
|
|
|
|
- filter(Arrays.asList(TradeGoods.VALID_STATUS), SearchConstants.GOODS_GO_STATUS_FIELD, booleanQuery);
|
|
|
|
|
- }
|
|
|
|
|
// 过滤
|
|
// 过滤
|
|
|
Set<Entry<FilterField, Object>> entrySet = filters.entrySet();
|
|
Set<Entry<FilterField, Object>> entrySet = filters.entrySet();
|
|
|
for (Entry<FilterField, Object> entry : entrySet) {
|
|
for (Entry<FilterField, Object> entry : entrySet) {
|
|
|
- switch (entry.getKey()) {
|
|
|
|
|
- case GOODS_KINDID:
|
|
|
|
|
- filter(entry.getValue(), SearchConstants.GOODS_KI_ID_FIELD, booleanQuery);
|
|
|
|
|
- break;
|
|
|
|
|
- case GOODS_BRANDID:
|
|
|
|
|
- filter(entry.getValue(), SearchConstants.GOODS_BR_ID_FIELD, booleanQuery);
|
|
|
|
|
- break;
|
|
|
|
|
- case GOODS_STORE_TYPE:
|
|
|
|
|
- filter(entry.getValue(), SearchConstants.GOODS_ST_TYPE_FIELD, booleanQuery);
|
|
|
|
|
- break;
|
|
|
|
|
- case GOODS_CRNAME:
|
|
|
|
|
- filter(entry.getValue(), SearchConstants.GOODS_CRNAME_FIELD, booleanQuery);
|
|
|
|
|
- break;
|
|
|
|
|
- default:
|
|
|
|
|
- throw new SearchException("不支持该过滤字段:" + entry.getKey());
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ switch (entry.getKey()) {
|
|
|
|
|
+ case GOODS_KINDID:
|
|
|
|
|
+ filter(entry.getValue(), SearchConstants.GOODS_KI_ID_FIELD, booleanQuery);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case GOODS_BRANDID:
|
|
|
|
|
+ filter(entry.getValue(), SearchConstants.GOODS_BR_ID_FIELD, booleanQuery);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case GOODS_STORE_TYPE:
|
|
|
|
|
+ filter(entry.getValue(), SearchConstants.GOODS_ST_TYPE_FIELD, booleanQuery);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case GOODS_CRNAME:
|
|
|
|
|
+ filter(entry.getValue(), SearchConstants.GOODS_CRNAME_FIELD, booleanQuery);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case GOODS_STATUS:
|
|
|
|
|
+ filter(entry.getValue(), SearchConstants.GOODS_GO_STATUS_FIELD, booleanQuery);
|
|
|
|
|
+ break;
|
|
|
|
|
+ default:
|
|
|
|
|
+ throw new SearchException("不支持该过滤字段:" + entry.getKey());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
logger.info(booleanQuery.toString());
|
|
logger.info(booleanQuery.toString());
|
|
|
|
|
|