Quellcode durchsuchen

fixed 检索统计

zero vor 1 Jahr
Ursprung
Commit
70be178522

+ 1 - 1
src/main/java/cn/cslg/pas/common/utils/parseQueryToTree/expressManager.java

@@ -93,7 +93,7 @@ public class expressManager {
         hSymbols.put(oOR.Code, oOR);
 
         oOR = new operate();
-        oOR.Code = "CONTAIN";
+        oOR.Code = "CONTAIN";
         oOR.ShowName = " LIKE ";
         oOR.type = enuType.Assignment;
         oOR.priorityVale = 20;

+ 3 - 3
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/DateQueryBuilder.java

@@ -55,7 +55,7 @@ public class DateQueryBuilder implements IQueryBuilder {
                         break;
                     default:
                         query = QueryBuilders
-                                .range(range -> range.field(field).gte(JsonData.of(yearTime)).lte(JsonData.of(yearNextTime)));
+                                .range(range -> range.field(field).gte(JsonData.of(yearTime)).lt(JsonData.of(yearNextTime)));
                         break;
                 }
             } else if (value.length() == MONTH || value.length() == MONTHONE) {
@@ -93,7 +93,7 @@ public class DateQueryBuilder implements IQueryBuilder {
                         break;
                     default:
                         query = QueryBuilders
-                                .range(range -> range.field(field).gte(JsonData.of(monthTime)).lte(JsonData.of(monthNextTime)));
+                                .range(range -> range.field(field).gte(JsonData.of(monthTime)).lt(JsonData.of(monthNextTime)));
                         break;
                 }
             } else if (value.length() == DAY || value.length() == DAYONE) {
@@ -131,7 +131,7 @@ public class DateQueryBuilder implements IQueryBuilder {
                         break;
                     default:
                         query = QueryBuilders
-                                .range(range -> range.field(field).gte(JsonData.of(dayTime)).lte(JsonData.of(nextDayTime)));
+                                .range(range -> range.field(field).gte(JsonData.of(dayTime)).lt(JsonData.of(nextDayTime)));
                         break;
                 }
             } else {

+ 10 - 4
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/NestedPersonQueryBuilder.java

@@ -16,10 +16,16 @@ public class NestedPersonQueryBuilder implements IQueryBuilder{
 
     @Override
     public Query creteQuery() throws ParseException {
-        String str = "*";
-        String s = str.concat(value).concat("*");
-        Query query =  QueryBuilders.wildcard(i -> i.field(field).value(s));
-        Query nestedQuery = QueryBuilders.nested(z -> z.path(path).query(query));
+        Query query = null;
+        if (operator.equals("=")) {
+            query = QueryBuilders.term(i -> i.field(field).value(value));
+        } else {
+            String str = "*";
+            String s = str.concat(value).concat("*");
+            query = QueryBuilders.wildcard(i -> i.field(field).value(s));
+        }
+        Query finalQuery = query;
+        Query nestedQuery = QueryBuilders.nested(z -> z.path(path).query(finalQuery));
         return nestedQuery;
     }
 

+ 14 - 6
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/NestedQueryBuilder.java

@@ -13,15 +13,23 @@ public class NestedQueryBuilder implements IQueryBuilder {
 
     @Override
     public Query creteQuery() {
-        String str = "*";
-        String s = str.concat(value).concat("*");
-        Query query =  QueryBuilders.wildcard(i -> i.field(field).value(s));
-        Query nestedQuery = QueryBuilders.nested(z -> z.path(path).query(query));
+        Query nestedQuery = null;
+        if (operator.equals("=")) {
+            Query query = QueryBuilders.term(i -> i.field(field).value(value));
+            nestedQuery = QueryBuilders.nested(z -> z.path(path).query(query));
+        } else {
+            String str = "*";
+            String s = str.concat(value).concat("*");
+            Query query =  QueryBuilders.wildcard(i -> i.field(field).value(s));
+            nestedQuery = QueryBuilders.nested(z -> z.path(path).query(query));
+        }
         Query childQuery = null;
         if (path.equals("merge_applicant")) {
-            childQuery = QueryBuilders.hasChild(i -> i.type("merge_applicat").query(nestedQuery));
+            Query finalNestedQuery = nestedQuery;
+            childQuery = QueryBuilders.hasChild(i -> i.type("merge_applicat").query(finalNestedQuery));
         } else {
-            childQuery = QueryBuilders.hasChild(i -> i.type(path).query(nestedQuery));
+            Query finalNestedQuery1 = nestedQuery;
+            childQuery = QueryBuilders.hasChild(i -> i.type(path).query(finalNestedQuery1));
         }
         return childQuery;
     }

+ 60 - 0
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/TermOrWildcardQueryBuilder.java

@@ -0,0 +1,60 @@
+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;
+
+@Component
+public class TermOrWildcardQueryBuilder implements IQueryBuilder{
+    private String field = "";
+    private String value = "";
+    private String operator = "";
+    public String path = "";
+
+    @Override
+    public Query creteQuery() throws ParseException {
+        Query query = null;
+        if (operator.equals("=")) {
+            query = QueryBuilders.term(i -> i.field(field).value(value));
+        } else {
+            String str = "*";
+            String s = str.concat(value).concat("*");
+            query =  QueryBuilders.wildcard(i -> i.field(field).value(s));
+        }
+        return query;
+    }
+
+    public String getField() {
+        return field;
+    }
+
+    public void setField(String field) {
+        this.field = field;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getOperator() {
+        return operator;
+    }
+
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    public String getPath() {
+        return path;
+    }
+
+    public void setPath(String path) {
+        this.path = path;
+    }
+}

+ 6 - 6
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/DateCountAnalyssBuilder.java

@@ -40,7 +40,7 @@ public class DateCountAnalyssBuilder implements IEsCountAnalysisBuilder {
             Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(query)));
             aggregation = new Aggregation.Builder().dateHistogram(new DateHistogramAggregation.Builder()
                     .field(field).format("yyyy")
-                    .calendarInterval(CalendarInterval.Year).build())
+                    .calendarInterval(CalendarInterval.Year).timeZone("+08:00").build())
                     .aggregations(new HashMap() {{
                         put("filter_agg", filter);
                     }}).build();
@@ -167,9 +167,9 @@ public class DateCountAnalyssBuilder implements IEsCountAnalysisBuilder {
             aggregation = AggregationBuilders.dateRange(i -> i.field(field).format("yyyy-MM").ranges(rangeExpressions));
         } else if (StringUtils.isNotEmpty(format) && CollectionUtils.isEmpty(values)) {
             if (format.equals("年")) {
-                aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy").calendarInterval(CalendarInterval.Year));
+                aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy").calendarInterval(CalendarInterval.Year).timeZone("+08:00"));
             } else if (format.equals("半年")) {
-                Aggregation halfYearAgg = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Month));
+                Aggregation halfYearAgg = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Month).timeZone("+08:00"));
                 aggregation = new Aggregation.Builder().dateHistogram(new DateHistogramAggregation.Builder()
                         .field(field).format("yyyy")
                         .calendarInterval(CalendarInterval.Year).build())
@@ -177,12 +177,12 @@ public class DateCountAnalyssBuilder implements IEsCountAnalysisBuilder {
                             put("halfYearAgg", halfYearAgg);
                         }}).build();
             } else if (format.equals("季")) {
-                aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Quarter));
+                aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Quarter).timeZone("+08:00"));
             } else if (format.equals("月")) {
-                aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Month));
+                aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Month).timeZone("+08:00"));
             }
         } else {
-            aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy").calendarInterval(CalendarInterval.Year));
+            aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy").calendarInterval(CalendarInterval.Year).timeZone("+08:00"));
 
         }
         return aggregation;

+ 3 - 1
src/main/java/cn/cslg/pas/service/business/MergePersonService.java

@@ -641,6 +641,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
      */
     public Records getMergePerson(GetAllPersonVO vo) throws Exception {
         Integer projectId = vo.getProjectId();
+        Integer taskId = vo.getTaskId();
         Long pageNum = vo.getPageNum();
         Long pageSize = vo.getPageSize();
         Integer type = vo.getType();
@@ -661,6 +662,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         SearchRequest.Builder builder = new SearchRequest.Builder();
         //设置查询索引
         builder.index("patent");
+        Query mustQ = QueryBuilders.hasChild(i -> i.type("project").query(j -> j.term(n -> n.field("project_id").value(projectId))));
         if (!CollectionUtils.isEmpty(conditionList)) {
             for (String name : conditionList) {
                 List<Query> queries = new ArrayList<>();
@@ -687,7 +689,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
                     Query childQ = QueryBuilders.hasChild(i -> i.type("merge_inventor").query(query));
                     queries.add(childQ);
                 }
-                Query bool = QueryBuilders.bool(i -> i.should(queries));
+                Query bool = QueryBuilders.bool(i -> i.must(mustQ).should(queries));
                 builder.query(bool);
                 //分页
 //        if (pageNum > 0 && pageSize > 0) {

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

@@ -326,7 +326,7 @@
     "value": "agency",
     "field": "AGN",
     "esField": "agency.key",
-    "esClass": "wildcardQueryBuilder",
+    "esClass": "termOrWildcardQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
     "ifShow": "true",
@@ -341,7 +341,7 @@
     "value": "agent",
     "field": "AG",
     "esField": "agent.key",
-    "esClass": "wildcardQueryBuilder",
+    "esClass": "termOrWildcardQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
     "ifShow": "true",