簡體   English   中英

彈性搜索:兩層嵌套映射,估計文檔總數

[英]Elastic search: Two level nested mapping, estimate total number of documents

我有映射為:

"properties": {
  "parents": {
    "type": "nested",
    "properties": {
      "parent_id": {
        "type": "integer",
        "doc_values": false
      },
      "child": {
        "type": "nested",
        "properties": {
          "is_deleted": {
            "type": "boolean",
            "doc_values": false
          },
          "child_id": {
            "type": "integer",
            "doc_values": false
          },
          "timestamp": {
            "type": "long",
            "doc_values": false
          }
        }
      }
    }
  },
  "other_ID": {
    "type": "string",
    "index": "not_analyzed",
    "doc_values": false
  }
}

我已為此索引分配了5個分片(我的Elastic搜索集群具有7個節點),但不確定是否足夠。

每個Elasticsearch分片都是一個Lucene索引。 一個Lucene索引中可以包含的文檔數量上限。 從LUCENE-5843開始,限制為2,147,483,519(= Integer.MAX_VALUE-128)個文檔。 您可以使用_cat / shards API監控分片大小。

假設會有x唯一的_ID ,每個_ID將有y父母,每個父母將有z孩子。 我的索引中的文檔總數是多少?

更新:

為了防止定義不正確的映射,每個索引可以定義的嵌套字段的數量限制為50個

這是否意味着我的_ID不能有超過50個父母?

您將看到的實際文檔數只是頂級文檔的數量,而不是嵌套文檔的數量,即使每個嵌套文檔都是幕后的Lucene文檔。

因此,如果您要查找Lucene文檔的總數,則如果x頂級文檔中的每個都有y父元素,而每個parents元素具有z個子元素,那么對於每個頂級文檔,您將擁有x * (1 + (y * (1 + z))) Lucene文檔。

它是否適合您的群集,完全取決於xyz

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM