首页 > 解决方案 > Elasticsearch Java High Level Client 7.3.1:聚合搜索响应中的索引命中

问题描述

我正在使用 ES 7.3.1 和 Elasticsearch 高级客户端 7.3.1 我们有一个包含 3 个索引的别名。

Alias Name :  employee_search
Indexes in this alias : contract_employee,permanent_employee,client

我正在搜索这个别名

SearchRequest searchReq = new SearchRequest("employee_search");
WrapperQueryBuilder qb = QueryBuilders.wrapperQuery(searchQuery); //i am preparing a dsl query
SearchSourceBuilder sbb = new SearchSourceBuilder();
sbb.query(qb);
searchReq.source(sbb);
SearchResponse resp = esClient.search(searchReq, RequestOptions.DEFAULT);

作为回应,我需要一个聚合,我可以在其中获得索引命中(哪个索引给出了多少命中?)需要实现的聚合是

{
  "aggs": {
    "index_wise_count": {
      "terms": {
        "field": "_index"
      }
    }
  }
}

如何在现有的搜索响应中实现这一点?

我试过但没有奏效:

SearchRequest searchReq = new SearchRequest("employee_search");
    WrapperQueryBuilder qb = QueryBuilders.wrapperQuery(searchQuery); //i am preparing a dsl query
    SearchSourceBuilder sbb = new SearchSourceBuilder();
    sbb.query(qb);
    sbb.aggreagation(AggregationBuilders.terms("index_wise_count").field("index"));
    searchReq.source(sbb);
    SearchResponse resp = esClient.search(searchReq, RequestOptions.DEFAULT);

标签: javaelasticsearchelastic-stackelasticsearch-aggregationelasticsearch-7

解决方案


我错过了一个下划线:(

sbb.aggreagation(AggregationBuilders.terms("index_wise_count").field("_index"));

推荐阅读