pom文件
<!--ES模块-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
<version>3.2.2</version>
</dependency>
ES索引表字段:
在ESHead中聚合查询是有字段展示
可在后台代码调用查询时debug无数据展示
查询代码语句为:
// 设置聚合为chargeName
TermsAggregationBuilder termsAggregationBuilder = AggregationBuilders.terms(ES_ES_BILL_STATISTICS_COLUMN_CHARGE_NAME).field(ES_ES_BILL_STATISTICS_COLUMN_CHARGE_NAME + ES_ES_BILL_STATISTICS_KEY_WORD).size(10000);
// 查询应收总额
SumAggregationBuilder receivableSumMoneyAgg = AggregationBuilders.sum(ES_ES_BILL_STATISTICS_RECEIVABLE_SUM_MONEY).field(ES_ES_BILL_STATISTICS_COLUMN_PAYABLE_CHARGE);
// 查询应收总额数量
ValueCountAggregationBuilder receivableSumCount = AggregationBuilders.count(ES_ES_BILL_STATISTICS_RECEIVABLE_SUM_COUNT).field(ES_ES_BILL_STATISTICS_COLUMN_PAYABLE_CHARGE);
// 查询已缴金额
SumAggregationBuilder paidinSumMoneyAgg = AggregationBuilders.sum(ES_ES_BILL_STATISTICS_PAID_SUM_MONEY).field(ES_ES_BILL_STATISTICS_COLUMN_PAIDIN_CHARGE);
// 查询已缴帐单数
ValueCountAggregationBuilder paidinSumCount = AggregationBuilders.count(ES_ES_BILL_STATISTICS_PAID_SUM_COUNT).field(ES_ES_BILL_STATISTICS_COLUMN_PAIDIN_CHARGE);
TermsAggregationBuilder unitIdAggs = AggregationBuilders.terms(ES_ES_BILL_STATISTICS_COLUMN_UNIT_ID)
.field(ES_ES_BILL_STATISTICS_COLUMN_UNIT_ID + ES_ES_BILL_STATISTICS_KEY_WORD);
TermsAggregationBuilder unitNameAggs = AggregationBuilders.terms(ES_ES_BILL_STATISTICS_COLUMN_UNIT_NAME)
.field(ES_ES_BILL_STATISTICS_COLUMN_UNIT_NAME + ES_ES_BILL_STATISTICS_KEY_WORD).size(10000);
TermsAggregationBuilder chargeNameAggs = AggregationBuilders.terms(ES_ES_BILL_STATISTICS_COLUMN_CHARGE_NAME)
.field(ES_ES_BILL_STATISTICS_COLUMN_CHARGE_NAME + ES_ES_BILL_STATISTICS_KEY_WORD).size(10000);
termsAggregationBuilder
.subAggregation(receivableSumMoneyAgg)
.subAggregation(receivableSumCount)
.subAggregation(paidinSumMoneyAgg)
.subAggregation(paidinSumCount)
.subAggregation(unitNameAggs)
.subAggregation(chargeNameAggs)
.subAggregation(unitIdAggs)
;
// 生成查询条件
SearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(BuilderDTO)
.withPageable(pageable)
.withSort(new FieldSortBuilder(ES_BILL_STATISTICS_CREATE_DATE).order(SortOrder.DESC))
.withIndices(ES_BILL_STATISTICS_INDEX_NAME)
.withTypes(ES_BILL_STATISTICS_TTPE)
.withSearchType(SearchType.DEFAULT)
.addAggregation(termsAggregationBuilder)
.build();
在debug中字符串类型无数据存在,但其他类型有字段。
是因为需要从中使用取出桶并使用getKeyAsString方法。