elasticsearch 如何使用NativeQuery支持聚合查询

h79rfbju  于 2023-04-20  发布在  ElasticSearch
关注(0)|答案(1)|浏览(498)

如何在Spring Data Elasticsearch 5.x和新客户端中使用NativeQuery支持聚合查询,我已经附上了我们在4.x中使用的现有实现

protected <T> SearchHits searchHitsForAggregation(QueryBuilder queryBuilder,
        AbstractAggregationBuilder<?> aggregationBuilders, Pageable pageable) {
    NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withSearchType(SearchType.DEFAULT)
            .withQuery(queryBuilder).withAggregations(aggregationBuilders);

    if (pageable == null) {
        searchQueryBuilder.withMaxResults(0);
    }
    else {
        searchQueryBuilder.withPageable(pageable);
    }

    NativeSearchQuery searchQuery = searchQueryBuilder.build();
    return operations.search(searchQuery, indexClass(), indexCoordinates());
}
0tdrvxhp

0tdrvxhp1#

你只需要使用NativeQueryBuilder中相应的方法:
https://docs.spring.io/spring-data/elasticsearch/docs/current/API/org/springframework/data/elasticsearch/client/elc/NativeQueryBuilder.html#withAggregation(java.lang.String,co.elastic.clients.elasticsearch._types.aggregations.Aggregation)

相关问题