Browse Source

add PrefixQuery for goods' cmp_code and pr_pcmpcode

sunyj 8 years ago
parent
commit
61e84b31f6

+ 3 - 0
mall-search/src/main/java/com/uas/search/service/impl/SearchServiceImpl.java

@@ -1185,6 +1185,9 @@ public class SearchServiceImpl implements SearchService {
 	 */
 	private Query setGoodsBoost(String keyword) {
 		BooleanQuery booleanQuery = new BooleanQuery();
+        // 前缀搜索(字段并未分词,进行分词搜索时,会有边界问题,如搜索 'BC807-40,215')
+        booleanQuery.add(new PrefixQuery(new Term(SearchConstants.GOODS_CMP_CODE_FIELD, keyword.toLowerCase())), BooleanClause.Occur.SHOULD);
+        booleanQuery.add(new PrefixQuery(new Term(SearchConstants.GOODS_PR_PCMPCODE_FIELD, keyword.toLowerCase())), BooleanClause.Occur.SHOULD);
 		// 原厂型号
 		booleanQuery.add(createQuery(SearchConstants.GOODS_CMP_CODE_FIELD, keyword, 100), BooleanClause.Occur.SHOULD);
 		// 非标