[英]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文檔。
它是否適合您的群集,完全取決於x
, y
和z
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.