如何使用注释来执行像@Query这样的恶化(value =“{”query“:”“}”)

时间:2016-10-17 10:13:03

标签: elasticsearch spring-data-elasticsearch

如何使用注释通过spring-data-elasticsearch进行@Query(value =“{”query“:”“}”)的混合?

1 个答案:

答案 0 :(得分: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);