2017-03-29 71 views
0

這可能是一個初學者的問題,但我有一些懷疑與尺寸有關。 按彈性搜索的規格,尺寸的最大值可以是10000,我想驗證我下面的理解:彈性搜索中的尺寸參數

示例查詢:

GET testindex-2016.04.14/_search 
{ 
    "size": 10000, 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "match": { 
      "type": "TEST" 
      } 
     } 
     ] 
    } 
    }, 
    "aggs": { 
    "testAggs": { 
     "terms": { 
     "field": "type", 
     "size": 0 
     }, 
     "aggs": { 
     "innerAggs": { 
      "max": { 
      "field": "Value" 
      } 
     } 
     } 
    } 
    } 
} 

響應:

{ 
    "took": 6, 
    "timed_out": false, 
    "_shards": { 
    "total": 5, 
    "successful": 5, 
    "failed": 0 
    }, 
    "hits": { 
    "total": 26949, 
    "max_score": 0, 
    "hits": [ 
     .....10000 records 
    ] 
    }, 
    "aggregations": { 
    "test": { 
     "doc_count_error_upper_bound": 0, 
     "sum_other_doc_count": 0, 
     "buckets": [ 
     { 
      "key": "TEST", 
      "doc_count": 26949, 
      "innerAggs": { 
      "value": 150 
      } 
     } 
     ] 
    } 
    } 
} 

1 - 如果大小設置爲10000,並且彈性搜索中有超過20萬條記錄滿足查詢,所以在查詢結果中,我會得到no。命中爲10000,但「總數」爲:200000.

2 - 有多少記錄可用於進一步的聚合 - 點擊率或「總」價值。

3 - 如果我們設置「size」:0,在這種情況下,我們得到hits = 0,但有多少記錄可用於聚合?

請澄清我的理解,並對有疑問的問題發表評論。謝謝。

回答

2
  1. size參數只告訴多少命中應該在響應中返回,因此,如果您指定大小:10000個200000紀錄的比賽,你會得到10000個配套文件,在結果命中,但total會說明200000

  2. 聚合總是對整組結果進行計算,所以total的值。

  3. 見2

+0

謝謝您的回答,我知道,我會從你的答案,所以我有一個更doubt-是否有「總」價值的上限,我指的是查詢和聚合在所有匹配的記錄上運行,而不管數量。 – pbajpai21

+0

除物理文件外沒有上限,它是分片可以包含的文檔總數(= Integer.MAX_VALUE)。 – Val