|
|
@@ -866,29 +866,32 @@ public class SearchServiceImpl implements SearchService {
|
|
|
try {
|
|
|
BooleanQuery booleanQuery = queryGoods(keyword, keywordFields, tokenized);
|
|
|
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 (!StringUtils.isEmpty(filters.get(FilterField.GOODS_KINDID))) {
|
|
|
- Object kindIds = filters.get(FilterField.GOODS_KINDID);
|
|
|
- filter(kindIds, SearchConstants.GOODS_KI_ID_FIELD, booleanQuery);
|
|
|
+ filter(filters.get(FilterField.GOODS_KINDID), SearchConstants.GOODS_KI_ID_FIELD, booleanQuery);
|
|
|
}
|
|
|
|
|
|
// 筛选品牌
|
|
|
if (!StringUtils.isEmpty(filters.get(FilterField.GOODS_BRANDID))) {
|
|
|
- Object brandIds = filters.get(FilterField.GOODS_BRANDID);
|
|
|
- filter(brandIds, SearchConstants.GOODS_BR_ID_FIELD, booleanQuery);
|
|
|
+ filter(filters.get(FilterField.GOODS_BRANDID), SearchConstants.GOODS_BR_ID_FIELD, booleanQuery);
|
|
|
}
|
|
|
|
|
|
// 筛选货源
|
|
|
if (!StringUtils.isEmpty(filters.get(FilterField.GOODS_STORE_TYPE))) {
|
|
|
- Object storeTypes = filters.get(FilterField.GOODS_STORE_TYPE);
|
|
|
- filter(storeTypes, SearchConstants.GOODS_ST_TYPE_FIELD, booleanQuery);
|
|
|
+ filter(filters.get(FilterField.GOODS_STORE_TYPE), SearchConstants.GOODS_ST_TYPE_FIELD, booleanQuery);
|
|
|
}
|
|
|
|
|
|
// 筛选货币
|
|
|
if (!StringUtils.isEmpty(filters.get(FilterField.GOODS_CRNAME))) {
|
|
|
- Object crNames = filters.get(FilterField.GOODS_CRNAME);
|
|
|
- filter(crNames, SearchConstants.GOODS_CRNAME_FIELD, booleanQuery);
|
|
|
+ filter(filters.get(FilterField.GOODS_CRNAME), SearchConstants.GOODS_CRNAME_FIELD, booleanQuery);
|
|
|
}
|
|
|
|
|
|
// 价格筛选
|
|
|
@@ -1084,6 +1087,13 @@ public class SearchServiceImpl implements SearchService {
|
|
|
List<Map<String, Object>> result = new ArrayList<>();
|
|
|
try {
|
|
|
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();
|
|
|
for (Entry<FilterField, Object> entry : entrySet) {
|
|
|
@@ -1165,15 +1175,12 @@ public class SearchServiceImpl implements SearchService {
|
|
|
if (tokenized == null || !tokenized.booleanValue()) {
|
|
|
booleanQuery2.add(new TermQuery(new Term(keywordField, keyword.toLowerCase())), BooleanClause.Occur.SHOULD);
|
|
|
} else {
|
|
|
- booleanQuery2.add(SearchUtils.getBooleanQuery(keywordField, keyword),
|
|
|
- BooleanClause.Occur.SHOULD);
|
|
|
+ booleanQuery2.add(SearchUtils.getBooleanQuery(keywordField, keyword), BooleanClause.Occur.SHOULD);
|
|
|
}
|
|
|
}
|
|
|
booleanQuery.add(booleanQuery2, BooleanClause.Occur.MUST);
|
|
|
}
|
|
|
}
|
|
|
- // 过滤状态
|
|
|
- filter(Arrays.asList(TradeGoods.VALID_STATUS), SearchConstants.GOODS_GO_STATUS_FIELD, booleanQuery);
|
|
|
return booleanQuery;
|
|
|
}
|
|
|
|