|
@@ -225,12 +225,11 @@ public class EsService {
|
|
|
.aggregations(new HashMap() {{
|
|
|
put("hitAgg", hits);
|
|
|
}}).build();
|
|
|
- Aggregation filtersAgg = new Aggregation.Builder().filters(new FiltersAggregation.Builder()
|
|
|
- .filters(i -> i.array(Arrays.asList(q))).build())
|
|
|
+ Aggregation filterAgg = new Aggregation.Builder().filter(i -> i.bool(j -> j.must(q)))
|
|
|
.aggregations(new HashMap() {{
|
|
|
- put("filtersAgg", aggregation);
|
|
|
+ put("filterAgg", aggregation);
|
|
|
}}).build();
|
|
|
- builder.aggregations("Agg", filtersAgg);
|
|
|
+ builder.aggregations("Agg", filterAgg);
|
|
|
} else {
|
|
|
//4. 返回数据
|
|
|
builder.query(q);
|
|
@@ -275,59 +274,56 @@ public class EsService {
|
|
|
long total = 0L;
|
|
|
if (StringUtils.isNotEmpty(esField)) {
|
|
|
Aggregate agg = response.aggregations().get("Agg");
|
|
|
- List<FiltersBucket> buckets = agg.filters().buckets().array();
|
|
|
- for (FiltersBucket bucket : buckets) {
|
|
|
- Aggregate filtersAgg = bucket.aggregations().get("filtersAgg");
|
|
|
- List<StringTermsBucket> termsBuckets = filtersAgg.sterms().buckets().array();
|
|
|
- for (StringTermsBucket termsBucket : termsBuckets) {
|
|
|
- Aggregate hitAgg = termsBucket.aggregations().get("hitAgg");
|
|
|
- total = hitAgg.topHits().hits().total().value();
|
|
|
- List<Hit<JsonData>> hits = hitAgg.topHits().hits().hits();
|
|
|
- hits.forEach(hit -> {
|
|
|
- String id = hit.id();
|
|
|
- JsonData data = hit.source();
|
|
|
- Patent patent1 = JSONObject.parseObject(String.valueOf(data), Patent.class);
|
|
|
- PatentColumnDTO columnDTO = new PatentColumnDTO();
|
|
|
- BeanUtils.copyProperties(patent1, columnDTO);
|
|
|
- if (projectId != null) {
|
|
|
- try {
|
|
|
- columnDTO.setMergeApplicant(esPatentService.getMergeApp(projectId, id));
|
|
|
- } catch (IOException e) {
|
|
|
- columnDTO.setMergeApplicant(new ArrayList<>());
|
|
|
- }
|
|
|
- try {
|
|
|
- columnDTO.setMergeRightHolder(esPatentService.getMergeRight(projectId, id));
|
|
|
- } catch (IOException e) {
|
|
|
- columnDTO.setMergeRightHolder(new ArrayList<>());
|
|
|
- }
|
|
|
- try {
|
|
|
- columnDTO.setMergeInventor(esPatentService.getMergeInventor(projectId, id));
|
|
|
- } catch (IOException e) {
|
|
|
- columnDTO.setMergeInventor(new ArrayList<>());
|
|
|
- }
|
|
|
+ Aggregate filtersAgg = agg.filter().aggregations().get("filterAgg");
|
|
|
+ List<StringTermsBucket> termsBuckets = filtersAgg.sterms().buckets().array();
|
|
|
+ for (StringTermsBucket termsBucket : termsBuckets) {
|
|
|
+ Aggregate hitAgg = termsBucket.aggregations().get("hitAgg");
|
|
|
+ total = hitAgg.topHits().hits().total().value();
|
|
|
+ List<Hit<JsonData>> hits = hitAgg.topHits().hits().hits();
|
|
|
+ hits.forEach(hit -> {
|
|
|
+ String id = hit.id();
|
|
|
+ JsonData data = hit.source();
|
|
|
+ Patent patent1 = JSONObject.parseObject(String.valueOf(data), Patent.class);
|
|
|
+ PatentColumnDTO columnDTO = new PatentColumnDTO();
|
|
|
+ BeanUtils.copyProperties(patent1, columnDTO);
|
|
|
+ if (projectId != null) {
|
|
|
+ try {
|
|
|
+ columnDTO.setMergeApplicant(esPatentService.getMergeApp(projectId, id));
|
|
|
+ } catch (IOException e) {
|
|
|
+ columnDTO.setMergeApplicant(new ArrayList<>());
|
|
|
}
|
|
|
- if (ObjectUtils.isNotEmpty(patent1.getApplicantAddr())) {
|
|
|
- PersonAddress applicantAddr = patent1.getApplicantAddr();
|
|
|
- columnDTO.setAppAddress(applicantAddr.getAddress());
|
|
|
- columnDTO.setApplicantCountry(applicantAddr.getCountry());
|
|
|
- columnDTO.setAppProvince(applicantAddr.getProvince());
|
|
|
- columnDTO.setAppCity(applicantAddr.getCity());
|
|
|
- columnDTO.setAppDistrict(applicantAddr.getDistrict());
|
|
|
+ try {
|
|
|
+ columnDTO.setMergeRightHolder(esPatentService.getMergeRight(projectId, id));
|
|
|
+ } catch (IOException e) {
|
|
|
+ columnDTO.setMergeRightHolder(new ArrayList<>());
|
|
|
}
|
|
|
- if (ObjectUtils.isNotEmpty(patent1.getRightHolderAddr())) {
|
|
|
- PersonAddress rightAddr = patent1.getRightHolderAddr();
|
|
|
- columnDTO.setRightAddress(rightAddr.getAddress());
|
|
|
- columnDTO.setRightCountry(rightAddr.getCountry());
|
|
|
- columnDTO.setRightProvince(rightAddr.getProvince());
|
|
|
- columnDTO.setRightCity(rightAddr.getCity());
|
|
|
- columnDTO.setRightDistrict(rightAddr.getDistrict());
|
|
|
+ try {
|
|
|
+ columnDTO.setMergeInventor(esPatentService.getMergeInventor(projectId, id));
|
|
|
+ } catch (IOException e) {
|
|
|
+ columnDTO.setMergeInventor(new ArrayList<>());
|
|
|
}
|
|
|
- columnDTO.setApplicant(esPatentService.loadName(patent1.getApplicant()));
|
|
|
- columnDTO.setRightHolder(esPatentService.loadName(patent1.getRightHolder()));
|
|
|
- columnDTO.setInventor(esPatentService.loadName(patent1.getInventor()));
|
|
|
- list.add(columnDTO);
|
|
|
- });
|
|
|
- }
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotEmpty(patent1.getApplicantAddr())) {
|
|
|
+ PersonAddress applicantAddr = patent1.getApplicantAddr();
|
|
|
+ columnDTO.setAppAddress(applicantAddr.getAddress());
|
|
|
+ columnDTO.setApplicantCountry(applicantAddr.getCountry());
|
|
|
+ columnDTO.setAppProvince(applicantAddr.getProvince());
|
|
|
+ columnDTO.setAppCity(applicantAddr.getCity());
|
|
|
+ columnDTO.setAppDistrict(applicantAddr.getDistrict());
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotEmpty(patent1.getRightHolderAddr())) {
|
|
|
+ PersonAddress rightAddr = patent1.getRightHolderAddr();
|
|
|
+ columnDTO.setRightAddress(rightAddr.getAddress());
|
|
|
+ columnDTO.setRightCountry(rightAddr.getCountry());
|
|
|
+ columnDTO.setRightProvince(rightAddr.getProvince());
|
|
|
+ columnDTO.setRightCity(rightAddr.getCity());
|
|
|
+ columnDTO.setRightDistrict(rightAddr.getDistrict());
|
|
|
+ }
|
|
|
+ columnDTO.setApplicant(esPatentService.loadName(patent1.getApplicant()));
|
|
|
+ columnDTO.setRightHolder(esPatentService.loadName(patent1.getRightHolder()));
|
|
|
+ columnDTO.setInventor(esPatentService.loadName(patent1.getInventor()));
|
|
|
+ list.add(columnDTO);
|
|
|
+ });
|
|
|
}
|
|
|
} else {
|
|
|
List<Hit<Patent>> hits = response.hits().hits();
|