|
@@ -36,11 +36,9 @@ import java.util.stream.Collectors;
|
|
|
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
|
|
|
public class EsCountService {
|
|
|
private final List<String> childList = Arrays.asList("field");
|
|
|
- private final List<String> nestedList = Arrays.asList("applicant", "inventor", "rightHolder", "standerApplicant",
|
|
|
- "mergeApplicant", "standerRightHolder", "mergeRightHolder");
|
|
|
- private final List<String> dateList = Arrays.asList("publicDate", "appDate", "grantDate");
|
|
|
- private final List<String> numberList = Arrays.asList("quotePatentNoNum", "quotedPatentNoNum", "simpleFamilyNum",
|
|
|
- "inpadocFamilyNum", "patsnapFamilyNum");
|
|
|
+ private final List<String> nestedList = Arrays.asList("PA", "IN", "PE", "SAT", "MAT", "SRH", "MRH");
|
|
|
+ private final List<String> dateList = Arrays.asList("PD", "AD", "GD");
|
|
|
+ private final List<String> numberList = Arrays.asList("QPN", "QDPN", "SFN", "IFN", "PFN");
|
|
|
|
|
|
|
|
|
private final ElasticsearchClient client;
|
|
@@ -513,6 +511,18 @@ public class EsCountService {
|
|
|
.sorted(Comparator.comparing(EsCountDetailDTO::getName).reversed()).limit(topN).collect(Collectors.toList());
|
|
|
detailDTOS.addAll(collect);
|
|
|
}
|
|
|
+
|
|
|
+ EsCountDetailDTO countDTO = new EsCountDetailDTO();
|
|
|
+ countDTO.setField(field);
|
|
|
+ countDTO.setName("其他");
|
|
|
+ if (list.size() > topN) {
|
|
|
+ countDTO.setNumber((long)(list.size() - topN));
|
|
|
+
|
|
|
+ } else {
|
|
|
+ countDTO.setNumber((long)0);
|
|
|
+ }
|
|
|
+ countDTO.setTopN(topN);
|
|
|
+ detailDTOS.add(countDTO);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -525,7 +535,6 @@ public class EsCountService {
|
|
|
*/
|
|
|
public void getDateAnalysisDTOS(Aggregate agg, String field, Integer topN, List<EsCountDetailDTO> detailDTOS,EsCountDTO esCountDTO) {
|
|
|
List<RangeBucket> list1 = agg.dateRange().buckets().array();
|
|
|
-// esCountDTO.setAllNumber(Long.valueOf(String.valueOf(list1.size())));
|
|
|
List<EsCountDetailDTO> esCountDetailDTOS = new ArrayList<>();
|
|
|
for (RangeBucket bucket : list1) {
|
|
|
EsCountDetailDTO dto = new EsCountDetailDTO();
|
|
@@ -551,8 +560,14 @@ public class EsCountService {
|
|
|
* @param field
|
|
|
* @param detailDTOS
|
|
|
*/
|
|
|
- public void getNestedCountDTOS(Aggregate agg, String field,Integer topN, List<EsCountDetailDTO> detailDTOS) {
|
|
|
+ public void getNestedCountDTOS(Aggregate agg, String field, Integer topN, List<EsCountDetailDTO> detailDTOS) {
|
|
|
Aggregate termsAgg = agg.nested().aggregations().get("terms_agg");
|
|
|
+ EsCountDetailDTO countDTO = new EsCountDetailDTO();
|
|
|
+ countDTO.setField(field);
|
|
|
+ countDTO.setName("其他");
|
|
|
+ countDTO.setNumber(termsAgg.sterms().sumOtherDocCount());
|
|
|
+ countDTO.setTopN(topN);
|
|
|
+ detailDTOS.add(countDTO);
|
|
|
List<StringTermsBucket> list = termsAgg.sterms().buckets().array();
|
|
|
list.forEach(bucket -> {
|
|
|
EsCountDetailDTO dto = new EsCountDetailDTO();
|