我如何使用注释来进行聚合,如 @Query(value = "{"query":""}")
How can i use a annotation to do an aggragation like @Query(value = "{"query":""}")
如何使用注解对 spring-data-elasticsearch 进行 @Query(value = "{"query":""}") 之类的聚合?
您不能使用 @Query
注释,它的唯一目的是发送查询,而不是聚合。
使用 Spring Data Elasticsearch 实现此目的的唯一方法是利用 NativeSearchQueryBuilder
和 ElasticsearchTemplate
:
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);
如何使用注解对 spring-data-elasticsearch 进行 @Query(value = "{"query":""}") 之类的聚合?
您不能使用 @Query
注释,它的唯一目的是发送查询,而不是聚合。
使用 Spring Data Elasticsearch 实现此目的的唯一方法是利用 NativeSearchQueryBuilder
和 ElasticsearchTemplate
:
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);