【问题标题】:Get unique Index names in elasticsearch在 elasticsearch 中获取唯一的索引名称
【发布时间】:2018-07-28 18:55:05
【问题描述】:

使用 ES rest 客户端,如何根据某些搜索条件获取所有 唯一 索引名称的列表。下面的代码给出了我所有的索引名称,但也有重复的。请帮忙。

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); 

boolQueryBuilder.must(QueryBuilders.matchQuery("indexMetadata.user","95103"));
boolQueryBuilder.must(QueryBuilders.matchQuery("indexMetadata.indexLevel","LOCAL"));

sourceBuilder.query(boolQueryBuilder);

SearchRequest searchRequest = new SearchRequest();
String[] includeFields = new String[]{"hits.hits._index"};
String[] excludeFields = new String[]{};
sourceBuilder.fetchSource(includeFields, excludeFields);

searchRequest.source(sourceBuilder);

SearchResponse searchResponse = client.search(searchRequest);
        SearchHits hits = searchResponse.getHits();
        SearchHit[] searchHits = hits.getHits();
       for (SearchHit hit : searchHits) {
            System.out.println(hit.getIndex());
}

【问题讨论】:

    标签: java spring elasticsearch elasticsearch-plugin spring-data-elasticsearch


    【解决方案1】:

    您可以使用_cat API:

    GET /_cat/indices
    

    它返回集群中存在的所有索引,没有重复。

    【讨论】:

    • 我正在使用 High Level Rest 客户端,并且我还应用了一些过滤器。基于此,我正在尝试获取索引名称。你能建议我这个案例的正确代码sn-p吗
    猜你喜欢
    • 2019-01-01
    • 2015-06-28
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    相关资源
    最近更新 更多