zero 1 سال پیش
والد
کامیت
7d70189500

+ 8 - 1
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/MatchPhaseQueryBuilder.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.factorys.EsBuilderFactory;
 
 import co.elastic.clients.elasticsearch._types.query_dsl.Query;
+import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
 import org.springframework.stereotype.Component;
 
 import java.text.ParseException;
@@ -14,7 +15,13 @@ public class MatchPhaseQueryBuilder implements IQueryBuilder{
 
     @Override
     public Query creteQuery() throws ParseException {
-        return null;
+        Query query = null;
+        if (value.contains(" ")) {
+            query = QueryBuilders.matchPhrase(i -> i.field(field).query(value));
+        } else {
+            query = QueryBuilders.matchPhrase(i -> i.field(field).query(value).slop(2));
+        }
+        return query;
     }
 
     public String getField() {

+ 3 - 3
src/main/resources/jsons/patent.json

@@ -136,7 +136,7 @@
     "value": "abstractStr",
     "field": "AB",
     "esField": "abstract_str.text_content",
-    "esClass": "matchQueryBuilder",
+    "esClass": "matchPhaseQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
     "ifShow": "true",
@@ -151,7 +151,7 @@
     "value": "title",
     "field": "TI",
     "esField": "title.text_content",
-    "esClass": "matchQueryBuilder",
+    "esClass": "matchPhaseQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
     "ifShow": "true",
@@ -828,7 +828,7 @@
     "value": "claim",
     "field": "CL",
     "esField": "claim.text_content",
-    "esClass": "matchQueryBuilder",
+    "esClass": "matchPhaseQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
     "ifShow": "false",