瀏覽代碼

Merge remote-tracking branch 'origin/master'

lwhhszx 1 年之前
父節點
當前提交
f180c4a4f5
共有 1 個文件被更改,包括 13 次插入9 次删除
  1. 13 9
      src/main/java/cn/cslg/pas/service/business/MergePersonService.java

+ 13 - 9
src/main/java/cn/cslg/pas/service/business/MergePersonService.java

@@ -530,10 +530,11 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
         Aggregate totalAgg = response.aggregations().get("totalAgg");
         Aggregate totalAggregate = totalAgg.nested().aggregations().get("statsBucket");
-        Aggregate totalAgg1 = response.aggregations().get("totalAgg1");
-        Aggregate totalAggregate1 = totalAgg1.nested().aggregations().get("statsBucket1");
         long total = totalAggregate.statsBucket().count();
+        Aggregate totalAgg1 = null;
         if (type == 0) {
+            totalAgg1 = response.aggregations().get("totalAgg1");
+            Aggregate totalAggregate1 = totalAgg1.nested().aggregations().get("statsBucket1");
             long count = totalAggregate1.statsBucket().count();
             total = Math.max(total, count);
         }
@@ -541,16 +542,19 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         List<String> mergeList = new ArrayList<>();
         if (StringUtils.isNotEmpty(condition)) {
             Aggregate terms = totalAgg.nested().aggregations().get("terms");
-            Aggregate terms1 = totalAgg1.nested().aggregations().get("terms1");
             List<StringTermsBucket> termsBucketList = terms.sterms().buckets().array();
-            List<StringTermsBucket> termsBucketList1 = terms1.sterms().buckets().array();
-            termsBucketList.addAll(termsBucketList1);
+            Aggregate terms1 = null;
+            if (type == 0) {
+                terms1 = totalAgg1.nested().aggregations().get("terms1");
+                List<StringTermsBucket> termsBucketList1 = terms1.sterms().buckets().array();
+                termsBucketList.addAll(termsBucketList1);
+            }
             if (condition.contains("AND") && operate.equals("AND")) {
                 String[] parts = condition.split(" AND ");
                 for (String part : parts) {
                     List<String> expresses = getConditionExpress(part);
-                    List<String> merges = termsBucketList.stream().map(StringTermsBucket::key).map(FieldValue::stringValue)
-                            .distinct().filter(value -> expresses.stream().anyMatch(express -> value.contains(express)))
+                    List<String> merges = termsBucketList.stream().map(StringTermsBucket::key).map(FieldValue::stringValue).distinct()
+                            .filter(value -> expresses.stream().anyMatch(express -> value.contains(express.toUpperCase(Locale.ROOT))))
                             .collect(Collectors.toList());
                     total = total > merges.size() ? merges.size() : total;
                     merges = merges.stream().skip((pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
@@ -564,8 +568,8 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
                 }
             } else {
                 List<String> expresses = getConditionExpress(condition);
-                List<String> merges = termsBucketList.stream().map(StringTermsBucket::key).map(FieldValue::stringValue)
-                        .filter(value -> expresses.stream().anyMatch(express -> value.contains(express.toLowerCase(Locale.ROOT))))
+                List<String> merges = termsBucketList.stream().map(StringTermsBucket::key).map(FieldValue::stringValue).distinct()
+                        .filter(value -> expresses.stream().anyMatch(express -> value.contains(express.toUpperCase(Locale.ROOT))))
                         .collect(Collectors.toList());
                 total = total > merges.size() ? merges.size() : total;
                 merges = merges.stream().skip((pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());