|
@@ -214,7 +214,7 @@ public class EsService {
|
|
|
List<StringTermsBucket> termsBuckets = agg.sterms().buckets().array();
|
|
|
for (StringTermsBucket termsBucket : termsBuckets) {
|
|
|
String key = termsBucket.key().stringValue();
|
|
|
- PatentColumnDTO columnDTO = this.getPatentColumnDTO(key, projectId, esField);
|
|
|
+ PatentColumnDTO columnDTO = this.getPatentColumnDTOByGroup(key, projectId, esField);
|
|
|
list.add(columnDTO);
|
|
|
}
|
|
|
} else {
|
|
@@ -382,13 +382,16 @@ public class EsService {
|
|
|
}
|
|
|
|
|
|
//封装专利清单的同族分组
|
|
|
- public PatentColumnDTO getPatentColumnDTO(String key, Integer projectId, String field) throws Exception {
|
|
|
+ public PatentColumnDTO getPatentColumnDTOByGroup(String key, Integer projectId, String field) throws Exception {
|
|
|
PatentColumnDTO dto = new PatentColumnDTO();
|
|
|
SearchRequest.Builder builder = new SearchRequest.Builder();
|
|
|
//设置查询索引
|
|
|
builder.index("patent");
|
|
|
- Query query = QueryBuilders.term(i -> i.field(field).value(key));
|
|
|
- builder.query(query);
|
|
|
+ Query query = QueryBuilders.term(i -> i.field("project_id").value(projectId));
|
|
|
+ Query q1 = QueryBuilders.hasChild(i -> i.type("project").query(query));
|
|
|
+ Query q2 = QueryBuilders.term(i -> i.field(field).value(key));
|
|
|
+ Query bool = QueryBuilders.bool(i -> i.must(q1, q2));
|
|
|
+ builder.query(bool);
|
|
|
SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
|
|
|
List<Hit<Patent>> hits = response.hits().hits();
|
|
|
if (!CollectionUtils.isEmpty(hits)) {
|