|
|
@@ -52,13 +52,8 @@ public class SearchServiceImpl implements SearchService {
|
|
|
|
|
|
@Override
|
|
|
public SPage<Long> getKindIds(String keyword, Integer page, Integer size) {
|
|
|
- if (SearchUtils.isKeywordInvalid(keyword)) {
|
|
|
- throw new SearchException("搜索关键词无效:" + keyword);
|
|
|
- }
|
|
|
- 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, new Sort(sortKind()), page, size);
|
|
|
+ List<Long> ids = new ArrayList<>();
|
|
|
+ SPage<Document> documents = getKindDocuments(keyword, 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()) {
|
|
|
@@ -70,18 +65,13 @@ public class SearchServiceImpl implements SearchService {
|
|
|
|
|
|
@Override
|
|
|
public SPage<Map<String, Object>> getKinds(String keyword, Integer page, Integer size) {
|
|
|
- if (SearchUtils.isKeywordInvalid(keyword)) {
|
|
|
- throw new SearchException("搜索关键词无效:" + keyword);
|
|
|
- }
|
|
|
- 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, new Sort(sortKind()), page, size);
|
|
|
- SPage<Map<String, Object>> sPage = new SPage<Map<String, Object>>(documents.getTotalPage(),
|
|
|
+ List<Map<String, Object>> kinds = new ArrayList<>();
|
|
|
+ SPage<Document> documents = getKindDocuments(keyword, page, size);
|
|
|
+ SPage<Map<String, Object>> sPage = new SPage<>(documents.getTotalPage(),
|
|
|
documents.getTotalElement(), documents.getPage(), documents.getSize(), documents.isFirst(),
|
|
|
documents.isLast());
|
|
|
for (Document document : documents.getContent()) {
|
|
|
- Map<String, Object> kind = new HashMap<String, Object>();
|
|
|
+ Map<String, Object> kind = new HashMap<>();
|
|
|
kind.put("id", Long.parseLong(document.get(SearchConstants.KIND_ID_FIELD)));
|
|
|
kind.put("nameCn", document.get(SearchConstants.KIND_NAMECN_FIELD));
|
|
|
kinds.add(kind);
|
|
|
@@ -90,6 +80,15 @@ public class SearchServiceImpl implements SearchService {
|
|
|
return sPage;
|
|
|
}
|
|
|
|
|
|
+ private SPage<Document> getKindDocuments(String keyword, Integer page, Integer size){
|
|
|
+ if (SearchUtils.isKeywordInvalid(keyword)) {
|
|
|
+ throw new SearchException("搜索关键词无效:" + keyword);
|
|
|
+ }
|
|
|
+ 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 类目排序规则
|
|
|
*/
|
|
|
@@ -120,18 +119,8 @@ public class SearchServiceImpl implements SearchService {
|
|
|
|
|
|
@Override
|
|
|
public SPage<Long> getBrandIds(String keyword, Integer page, Integer size) {
|
|
|
- if (SearchUtils.isKeywordInvalid(keyword)) {
|
|
|
- throw new SearchException("搜索关键词无效:" + keyword);
|
|
|
- }
|
|
|
- List<Long> ids = new ArrayList<Long>();
|
|
|
- BooleanQuery booleanQuery = new BooleanQuery();
|
|
|
- booleanQuery.add(SearchUtils.getBooleanQuery(SearchConstants.BRAND_NAMECN_FIELD, keyword),
|
|
|
- BooleanClause.Occur.SHOULD);
|
|
|
- booleanQuery.add(SearchUtils.getBooleanQuery(SearchConstants.BRAND_NAMEEN_FIELD, keyword),
|
|
|
- BooleanClause.Occur.SHOULD);
|
|
|
- logger.info(booleanQuery.toString());
|
|
|
- SPage<Document> documents = SearchUtils.getDocuments(SearchConstants.BRAND_TABLE_NAME, booleanQuery, new Sort(sortBrand()), page,
|
|
|
- size);
|
|
|
+ List<Long> ids = new ArrayList<>();
|
|
|
+ SPage<Document> documents = getBrandDocuments(keyword, 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()) {
|
|
|
@@ -143,18 +132,8 @@ public class SearchServiceImpl implements SearchService {
|
|
|
|
|
|
@Override
|
|
|
public SPage<Map<String, Object>> getBrands(String keyword, Integer page, Integer size) {
|
|
|
- if (SearchUtils.isKeywordInvalid(keyword)) {
|
|
|
- throw new SearchException("搜索关键词无效:" + keyword);
|
|
|
- }
|
|
|
- List<Map<String, Object>> brands = new ArrayList<Map<String, Object>>();
|
|
|
- BooleanQuery booleanQuery = new BooleanQuery();
|
|
|
- booleanQuery.add(SearchUtils.getBooleanQuery(SearchConstants.BRAND_NAMECN_FIELD, keyword),
|
|
|
- BooleanClause.Occur.SHOULD);
|
|
|
- booleanQuery.add(SearchUtils.getBooleanQuery(SearchConstants.BRAND_NAMEEN_FIELD, keyword),
|
|
|
- BooleanClause.Occur.SHOULD);
|
|
|
- logger.info(booleanQuery.toString());
|
|
|
- SPage<Document> documents = SearchUtils.getDocuments(SearchConstants.BRAND_TABLE_NAME, booleanQuery, new Sort(sortBrand()), page,
|
|
|
- size);
|
|
|
+ List<Map<String, Object>> brands = new ArrayList<>();
|
|
|
+ SPage<Document> documents = getBrandDocuments(keyword, page, size);
|
|
|
SPage<Map<String, Object>> sPage = new SPage<Map<String, Object>>(documents.getTotalPage(),
|
|
|
documents.getTotalElement(), documents.getPage(), documents.getSize(), documents.isFirst(),
|
|
|
documents.isLast());
|
|
|
@@ -170,6 +149,20 @@ public class SearchServiceImpl implements SearchService {
|
|
|
return sPage;
|
|
|
}
|
|
|
|
|
|
+ private SPage<Document> getBrandDocuments(String keyword, Integer page, Integer size){
|
|
|
+ if (SearchUtils.isKeywordInvalid(keyword)) {
|
|
|
+ throw new SearchException("搜索关键词无效:" + keyword);
|
|
|
+ }
|
|
|
+ BooleanQuery booleanQuery = new BooleanQuery();
|
|
|
+ booleanQuery.add(SearchUtils.getBooleanQuery(SearchConstants.BRAND_NAMECN_FIELD, keyword),
|
|
|
+ BooleanClause.Occur.SHOULD);
|
|
|
+ booleanQuery.add(SearchUtils.getBooleanQuery(SearchConstants.BRAND_NAMEEN_FIELD, keyword),
|
|
|
+ BooleanClause.Occur.SHOULD);
|
|
|
+ logger.info(booleanQuery.toString());
|
|
|
+ return SearchUtils.getDocuments(SearchConstants.BRAND_TABLE_NAME, booleanQuery, new Sort(sortBrand()), page,
|
|
|
+ size);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @return 品牌排序规则
|
|
|
*/
|