2017-08-17 73 views
-1

我知道這個問題在這裏被問了好幾次。但我需要知道的是,它可能會得到全部 ES中特定字段的唯一值。ElasticSearch讀取所有唯一值

我來什麼到目前爲止:一個場的

  1. 請求基數:
 
{ 
    "size": 0, 
    "aggs": { 
     "unique_count": { 
      "cardinality": { 
       "field": "fieldName" 
      } 
     } 
    } 
} 
  • 推斷從基數分區數:total_partitions = unique_count/10。對於每個分區

  • 申請條件:

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

    它是正確的嗎?或者還有其他的方式嗎?

    回答

    0

    也許我錯過了一些東西在你的問題,但一個簡單的彙總應該給你一個特定領域的所有獨特價值與相應的計數:

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

    不,當有很多獨特的術語時,elasticsearch只返回頂部術語。 https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html –

    +0

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

    0

    我們結束了elasticsearch-hadoop。它包含Spark 集成。我們以本地模式運行Spark - 最簡單的解決方案。