ElasticSearch Java список уникальных значений поля - PullRequest
0 голосов
/ 21 сентября 2018

Привет, я новичок в упругом поиске и не понимаю, как это сделать в Java. Я пробовал гуглить везде, я получаю решение для завитков, и мне не очень удобно переводить из curl в java.Я хочу перечислить уникальные значения поля и используюasticseach6.1.2 и RestHighLevelClient до сих пор мой код:

    SearchRequest searchRequest = new SearchRequest(INDEX);
    searchRequest.types(TYPE);          
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    searchSourceBuilder.query(QueryBuilders.matchAllQuery());
    AggregationBuilder aggregation=AggregationBuilders.missing("agg").field("source");
    searchSourceBuilder.aggregation(aggregation);
    searchRequest.source(searchSourceBuilder);
    SearchResponse searchResponse =restHighLevelClient.search(searchRequest);
    Aggregation aggrega = searchResponse.getAggregations().get("source");
    StringTerms st = (StringTerms) aggrega;
    System.out.println(searchResponse);

Здесь есть поле с именем источника, я хочу перечислить уникальные значения этого с именем источника,этот код возвращает мне 5 строк со всеми полями, я уверен, что все в порядке.

1 Ответ

0 голосов
/ 26 сентября 2018

Попробуйте это для эластичной версии 6.x

    SearchRequest searchRequest = new SearchRequest(INDEX);
    searchRequest.types(TYPE);          
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    searchSourceBuilder.query(QueryBuilders.matchAllQuery());

    AggregationBuilder aggregation=AggregationBuilders.terms("source_aggs")
                .field("source.keyword").size(size)
                .order(BucketOrder.count(isAscending));

    searchSourceBuilder.aggregation(aggregation);

    searchRequest.source(searchSourceBuilder);
    SearchResponse searchResponse =restHighLevelClient.search(searchRequest);
    Aggregation aggrega = searchResponse.getAggregations().get("source_aggs");
    StringTerms st = (StringTerms) aggrega;
    System.out.println(searchResponse);
...