Elasticsearch Query Aggregate spring framework elasticsearsh如何?

时间:2014-12-09 14:08:49

标签: java spring elasticsearch spring-data-elasticsearch

我想使用以下内容聚合查询结果:

  "aggs": {
"agg1": {
      "terms": {
        "field": "basket_id_1",
        "size":0
      },
      "aggs": {
        "basket_id_2": {
          "terms": {
            "field": "basket_id_2",
            "size":0
          },
          "aggs": {
            "basket_id_3": {
              "terms": {
                "field": "basket_id_3",
                "size":0
              }
            }
          }
        }
      }
    }
  }

我如何使用elasticsearch spring框架在java中做到这一点?我打电话给哪种方法?以及在哪个对象上?

这是我目前在java中的代码:

       NativeSearchQueryBuilder searchQueryNative = new NativeSearchQueryBuilder()
            .withIndices(this.getIndex()).withTypes(this.getType());

    searchQueryNative.
    SearchQuery searchQuery = searchQueryNative.build();

    Page<Object> result = this.getElasticsearchTemplate().queryForPage(
            searchQuery, Object.class).;

1 个答案:

答案 0 :(得分:1)

当您使用时:

@Bean
public Client client() {
    return nodeBuilder().settings(buildNodeSettings()).node().client();
}

你可以利用:

client().prepareSearch()
    .setQuery( /* your query */ )
    .addAggregation( /* add an aggregation */ )
    .execute().actionGet();

请参阅http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/java-aggs.html