Kaynağa Gözat

fixed search

zero 1 yıl önce
ebeveyn
işleme
1c5ea17e46

+ 0 - 26
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/ChildCountAnalysisBuilder.java

@@ -41,7 +41,6 @@ public class ChildCountAnalysisBuilder implements IEsCountAnalysisBuilder {
             if (projectId != null) {
                 Query q2 = QueryBuilders.term(i -> i.field("custom_field.project_id").value(projectId));
                 queryList.add(q2);
-//                q = QueryBuilders.exists(i -> i.field("custom_field.task_id"));
             }
         }
         queryList.add(q);
@@ -67,19 +66,6 @@ public class ChildCountAnalysisBuilder implements IEsCountAnalysisBuilder {
                         .aggregations(new HashMap() {{
                             put("filterAgg", terms);
                         }}).build();
-//                if (taskId != null) {
-//                    termAgg = new Aggregation.Builder().filter(n -> n.bool(k -> k.must(queryList)))
-//                            .aggregations(new HashMap() {{
-//                                put("filterAgg", terms);
-//                            }}).build();
-//                } else {
-//                    Query finalQ = q;
-//                    termAgg = new Aggregation.Builder().filter(n -> n.bool(k -> k.must(queryList).mustNot(finalQ)))
-//                            .aggregations(new HashMap() {{
-//                                put("filterAgg", terms);
-//                            }}).build();
-//                }
-
             }
         } else {
             if (!CollectionUtils.isEmpty(values)) {
@@ -101,18 +87,6 @@ public class ChildCountAnalysisBuilder implements IEsCountAnalysisBuilder {
                         .aggregations(new HashMap() {{
                             put("filterAgg", terms);
                         }}).build();
-//                if (taskId != null) {
-//                    termAgg = new Aggregation.Builder().filter(n -> n.bool(k -> k.must(queryList)))
-//                            .aggregations(new HashMap() {{
-//                                put("filterAgg", terms);
-//                            }}).build();
-//                } else {
-//                    Query finalQ = q;
-//                    termAgg = new Aggregation.Builder().filter(n -> n.bool(k -> k.must(queryList).mustNot(finalQ)))
-//                            .aggregations(new HashMap() {{
-//                                put("filterAgg", terms);
-//                            }}).build();
-//                }
             }
         }
 

+ 2 - 1
src/main/java/cn/cslg/pas/service/business/es/EsCountService.java

@@ -595,7 +595,8 @@ public class EsCountService {
             builder.index("patent");
             Query q1 = QueryBuilders.parentId(i -> i.type("project_customfield").id(id));
             Query q2 = QueryBuilders.exists(i -> i.field("custom_field"));
-            Query bool = QueryBuilders.bool(i -> i.must(q1, q2));
+            Query q3 = QueryBuilders.term(i -> i.field("custom_field.if_new").value(1));
+            Query bool = QueryBuilders.bool(i -> i.must(q1, q2,q3));
             builder.query(bool);
             SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
             Long total = response.hits().total().value();

+ 7 - 12
src/main/java/cn/cslg/pas/service/business/es/EsService.java

@@ -441,8 +441,7 @@ public class EsService {
                         if (s.equals("未选择")) {
                             GetUnselectedDTO unselectedDTO = esCountService.getUnselectedCustomNum(projectId, taskId);
                             List<String> childIds = unselectedDTO.getBeinglessChildIds();
-                            List<String> nos = this.getPatentNos(childIds);
-                            String noCondition = this.appendPatentNo(nos);
+                            String noCondition = this.appendIds(childIds);
                             builder.append(s).append(")").append(" ").append("or")
                                     .append(" ").append("(").append(noCondition).append(")").append(")");
                         } else {
@@ -455,8 +454,7 @@ public class EsService {
                     if (value.equals("未选择")) {
                         GetUnselectedDTO unselectedDTO = esCountService.getUnselectedCustomNum(projectId, taskId);
                         List<String> childIds = unselectedDTO.getBeinglessChildIds();
-                        List<String> nos = this.getPatentNos(childIds);
-                        String noCondition = this.appendPatentNo(nos);
+                        String noCondition = this.appendIds(childIds);
                         builder.append(value).append(" ").append("or").append(" ").append(noCondition).append(")");
                     } else {
                         builder.append(value).append(")");
@@ -468,9 +466,9 @@ public class EsService {
         }
     }
 
-    //拼接专利号
-    public String appendPatentNo(List<String> nos) {
-        String str = "NO = ";
+    //拼接ids
+    public String appendIds(List<String> nos) {
+        String str = "ids = ";
         if (nos.size() > 1) {
             str = str + "(";
             for (int i = 0; i < nos.size(); i++) {
@@ -1381,6 +1379,7 @@ public class EsService {
         return null;
     }
 
+    //根据父id获取相应专利的专利号
     public List<String> getPatentNos(List<String> ids) throws IOException {
         SearchRequest.Builder builder = new SearchRequest.Builder();
         //设置查询索引
@@ -1411,8 +1410,6 @@ public class EsService {
                 Integer number = this.getPatent(patentNo, projectId);
                 if (number < 1) {
                     throw new XiaoShiException("删除失败");
-                } else {
-                    return false;
                 }
             }
         } else if (startNum >= 1 && endNum > 0) {
@@ -1421,8 +1418,6 @@ public class EsService {
                 Integer number = this.getPatent(patentNo, projectId);
                 if (number < 1) {
                     throw new XiaoShiException("删除失败");
-                } else {
-                    return false;
                 }
             }
         }
@@ -1452,7 +1447,7 @@ public class EsService {
 
     public Integer deleteByIds(List<String> ids) {
         Query query = QueryBuilders.ids(n -> n.values(ids));
-        DeleteByQueryRequest request = DeleteByQueryRequest.of(i -> i.index("patent").query(query));
+        DeleteByQueryRequest request = DeleteByQueryRequest.of(i -> i.index("patent").query(query).refresh(true));
         try {
             client.deleteByQuery(request);
             return 1;

+ 10 - 0
src/test/java/cn/cslg/pas/service/EventServiceTests.java

@@ -529,5 +529,15 @@ public class EventServiceTests {
 //        }
 //        String ids = esService.getIds("t53GZY8BdwlBaY8vOJFq", 319, null, "105");
 //        System.out.println(ids);
+        String s = "CN200380003758.0 OR CN200380024517.4 OR CN200380002092.7 \n" +
+                "OR CN200210053627.0 OR CN199210014159.1 OR JP2024032943A OR CN200310042440.5 OR CN199710090727.9 OR CN199610096572.5 OR CN199410009036.8 \n" +
+                "OR CN200210043340.X OR CN199710098829.5 OR CN199310003139.9 OR CN198910000939.9 \n" +
+                "OR CN198820004617.2 OR CN198910000787.2 OR CN198710003233.9";
+        String[] split = s.split("OR");
+        List<String> list = Arrays.asList(split);
+        System.out.println(list.size());
+        List<String> collect = list.stream().distinct().collect(Collectors.toList());
+        System.out.println(collect.size());
+
     }
 }