2017-08-17 3 views
-1

Ich weiß, dass diese Frage hier mehrmals gestellt wurde. Aber ich muss wissen, ist es Event möglich, alle eindeutige Werte von bestimmten in ES abgelegt zu erhalten.ElasticSearch alle eindeutigen Werte lesen

Was ich bisher kam:

  1. Anfrage Mächtigkeit eines Feldes:
 
{ 
    "size": 0, 
    "aggs": { 
     "unique_count": { 
      "cardinality": { 
       "field": "fieldName" 
      } 
     } 
    } 
} 
  1. ableiten Anzahl der Partitionen von Kardinalität: total_partitions = unique_count/10.

  2. Anfrage Bedingungen für jede Partition i:

 
{ 
    "size": 0, 
    "aggs": { 
     "value_terms": { 
      "terms": { 
       "field": "fieldName", 
       "include": { 
        "partition": $i, 
        "num_partitions": $total_partitions 
       } 
      } 
     } 
    } 
} 

Ist es richtig? Oder gibt es andere Möglichkeiten, das zu tun?

Antwort

0

Vielleicht habe ich etwas verpasst in Frage, sondern eine einfache Aggregation sollten Sie alle den einzigartigen Wert eines bestimmten Feldes mit der entsprechenden Zählung geben:

{ 
    "aggs": { 
    "unique_values": { 
     "terms": { 
     "field": "fieldName", 
     "size": 0 
     } 
    } 
    } 
} 
+0

Nein, wenn es viele eindeutige Begriffe gibt, gibt elasticsearch nur die oberen Terme zurück. https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html –

+0

https://discuss.elastic.co/t/aggregation-query-size/ 28393/2 – mel

0

Wir mit elasticsearch-hadoop endete. Es enthält Spark Integration. Wir führen Spark im lokalen Modus - die einfachste Lösung.

Verwandte Themen