我如何使用注释来执行诸如@Query(value =“{”query“:”“”“)”之类的加注) [英] How can i use a annotation to do an aggragation like @Query(value = "{"query":""}")

查看:544
本文介绍了我如何使用注释来执行诸如@Query(value =“{”query“:”“”“)”之类的加注)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用注释来执行像@Query(value ={query:})的标记,使用spring-data-elasticsearch?

How can I use an annotation to do an aggragation like @Query(value = "{"query":""}") with spring-data-elasticsearch?

推荐答案

您不能使用 @Query 注释,其唯一目的是发送查询,而不是聚合。

You cannot do it with the @Query annotation whose only purpose is to send a query, not aggregations.

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

The only way to achieve this with Spring Data Elasticsearch is to leverage NativeSearchQueryBuilder and 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);

这篇关于我如何使用注释来执行诸如@Query(value =“{”query“:”“”“)”之类的加注)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆