浏览代码

docs: v8精简版添加说明

许家凯 4 年之前
父节点
当前提交
0ed16071a0
共有 1 个文件被更改,包括 14 次插入8 次删除
  1. 14 8
      src/main/java/com/winhc/phoenix/example/service/impl/SearchV8SimpServiceImpl.java

+ 14 - 8
src/main/java/com/winhc/phoenix/example/service/impl/SearchV8SimpServiceImpl.java

@@ -26,13 +26,13 @@ import static org.elasticsearch.index.query.QueryBuilders.*;
 @Slf4j
 @Service(SearchV8SimpServiceImpl.index)
 @AllArgsConstructor
-public class SearchV8SimpServiceImpl  implements SearchService {
+public class SearchV8SimpServiceImpl implements SearchService {
     private SearchDao searchDao;
 
     public static final String index = "winhc-company-v8-simp";
     public static final String type = "company";
 
-    private static final String[] includes_tips = new String[]{"cname.show","new_cid"};
+    private static final String[] includes_tips = new String[]{"cname.show", "new_cid"};
     private static final FetchSourceContext fetchSourceContext_tips = new FetchSourceContext(true, includes_tips, null);
 
 
@@ -69,16 +69,14 @@ public class SearchV8SimpServiceImpl  implements SearchService {
 
     private BoolQueryBuilder getBoolQuery(String content) {
         BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
-        MultiMatchQueryBuilder multiMatchQueryBuilder = multiMatchQuery(content)
-                .operator(Operator.AND)
-                .type(MultiMatchQueryBuilder.Type.CROSS_FIELDS)
-                .minimumShouldMatch("5<80%")
-                .tieBreaker(0.3F);
 
+        // 公司现用名*100
         boolQuery.should(termQuery("cname.value.keyword", content).boost(100));
+        // 公司曾用名*100
         boolQuery.should(termQuery("history_name.value.keyword", content).boost(100));
 
 
+        // 0.7* max(商标全匹配*20,产品全匹配*40) + 0.3 *  sum(商标全匹配*20,产品全匹配*40)
         boolQuery.should(disMaxQuery().add(
                 QueryBuilders.boolQuery()
                         .should(termQuery("app_info.keyword", content).boost(40))
@@ -86,6 +84,7 @@ public class SearchV8SimpServiceImpl  implements SearchService {
                 ).tieBreaker(0.3F)
         );
 
+        // 0.6* max(商标*5,产品信息*15,商标全匹配*20,产品全匹配*40) + 0.4 *  sum(商标*5,产品信息*15,商标全匹配*20,产品全匹配*40)
         boolQuery.should(disMaxQuery().add(
                 QueryBuilders.boolQuery()
 
@@ -94,11 +93,17 @@ public class SearchV8SimpServiceImpl  implements SearchService {
 
                         .should(termQuery("app_info.keyword", content).boost(40))
                         .should(termQuery("company_tm.keyword", content).boost(20))
+                        // 加入最小匹配度
                         .minimumShouldMatch("5<80%")
                 ).tieBreaker(0.4F)
         );
 
-
+        MultiMatchQueryBuilder multiMatchQueryBuilder = multiMatchQuery(content)
+                .operator(Operator.AND)
+                .type(MultiMatchQueryBuilder.Type.CROSS_FIELDS)
+                .minimumShouldMatch("5<80%")
+                .tieBreaker(0.3F);
+        //公司现用名*16+曾用名*12
         multiMatchQueryBuilder
                 .field("cname.value", 16)
                 .field("history_name.value", 12)
@@ -106,6 +111,7 @@ public class SearchV8SimpServiceImpl  implements SearchService {
 
         boolQuery.should(multiMatchQueryBuilder);
         BoolQueryBuilder boolQuery2 = QueryBuilders.boolQuery();
+        // 过deleted非0数据
         boolQuery2.filter(QueryBuilders.termQuery("deleted", "0"));
         boolQuery2.must(boolQuery);
         return boolQuery2;