小编典典

我如何使用批注进行类似于@Query(value =“ {” query“:”“}”)的聚集

elasticsearch

如何使用spring-data-elasticsearch使用批注进行@Query(value =“ {” query“:”“}”)的聚集?


阅读 543

收藏
2020-06-22

共1个答案

小编典典

您不能使用@Query仅用于发送查询而不是聚合的注释的注释。

使用Spring Data
Elasticsearch实现此目的的唯一方法是利用NativeSearchQueryBuilderElasticsearchTemplate

SearchQuery searchQuery = new NativeSearchQueryBuilder()
    .withQuery(QueryBuilders.matchAll())
    .withSearchType(COUNT)
    .withIndices("your_index")
    .withTypes("your_type")
    .addAggregation(AggregationBuilders.terms("tags").field("tag"));

elasticsearchTemplate.queryForPage(searchQuery, YourEntity.class);
2020-06-22