提交 b19e431c 作者: 925993793@qq.com

研究中心bug修改

上级 af97db20
......@@ -56,8 +56,6 @@ public class EventAnalysisController {
@Autowired
private AnalysisService analysisService;
@Autowired
private SubjectAnalysisService subjectAnalysisService;
@Autowired
private EventAnalysisReportService eventAnalysisReportService;
@Autowired
private EsService esService;
......
......@@ -81,12 +81,12 @@ public class KafkaConsumer {
if (StringUtils.isNotEmpty(value)) {
try {
List<SubjectAnalysis> subjectAnalyses = JSON.parseArray(value, SubjectAnalysis.class);
subjectAnalyses.forEach(e -> {
for (SubjectAnalysis e : subjectAnalyses) {
if (exist(e)) {
e.setTitle(removeNonBmpUniCodes(e.getTitle()));
subjectAnalysisService.save(e);
}
});
}
log.info("id为-{}-的专题,此次-事件脉络-数据更新完成", subjectAnalyses.get(0).getSubjectId());
} catch (Exception e) {
e.printStackTrace();
......
......@@ -178,26 +178,70 @@ public class EsStatisticsServiceImpl implements EsStatisticsService {
TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms("group_origin")
.field("origin.keyword")
.order(BucketOrder.count(false))
.size(10);
.size(20);
searchSourceBuilder.aggregation(aggregationBuilder);
searchRequest.source(searchSourceBuilder);
try {
SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
long value = response.getHits().getTotalHits().value;
Aggregations aggregations = response.getAggregations();
Terms groupSource = aggregations.get("group_origin");
List<? extends Terms.Bucket> buckets = groupSource.getBuckets();
if (CollectionUtils.isNotEmpty(buckets)) {
for (int i = 0; i < buckets.size(); i++) {
Terms.Bucket bucket = buckets.get(i);
CountVO vo = new CountVO();
vo.setOrder(i + 1);
vo.setName(bucket.getKeyAsString());
String[] splitArr = new String[]{"-","-"};
for (Terms.Bucket bucket : buckets) {
boolean flag = false;
long count = bucket.getDocCount();
vo.setValue(count);
String percentage = getPercentage(count, value);
vo.setPercentage(percentage);
list.add(vo);
//获取真正的来源
String originName = bucket.getKeyAsString();
String split = null;
boolean contain = false;
for (String s : splitArr) {
if (originName.contains(s)) {
contain = true;
split = s;
break;
}
}
if (contain) {
int index = originName.indexOf(split);
originName = originName.substring(0, index);
}
//先判断是否存在,不存在则新增
for (CountVO countVO : list) {
if (countVO.getName().equals(originName)) {
flag = true;
countVO.setValue(countVO.getValue() + count);
break;
}
}
if (!flag) {
if (list.size() < 10) {
CountVO countVO = new CountVO();
countVO.setName(originName);
countVO.setValue(count);
list.add(countVO);
} else {
break;
}
}
}
long totalCount = list.stream().mapToLong(CountVO::getValue).sum();
list.sort((arg0, arg1) -> (int) (arg1.getValue() - arg0.getValue()));
long percentageSum = 0;
for (int i = 0; i < list.size(); i++) {
CountVO countVO = list.get(i);
if (i < list.size() - 1) {
String percentage = getPercentage(countVO.getValue(), totalCount);
countVO.setPercentage(percentage);
percentageSum = percentageSum + Long.parseLong(percentage.replace("%", ""));
} else {
if (totalCount > 0) {
countVO.setPercentage((100 - percentageSum) + "%");
} else {
countVO.setPercentage("0%");
}
}
countVO.setOrder(i + 1);
}
}
} catch (Exception e) {
......@@ -383,5 +427,4 @@ public class EsStatisticsServiceImpl implements EsStatisticsService {
searchSourceBuilder.query(boolQuery);
return searchSourceBuilder;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论