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