我的映射为:
"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个分片(我的弹性搜索群集有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个父母?
答案 0 :(得分:0)
您将看到的真实文档数是仅顶级文档的数量,而不是嵌套文档的数量,即使每个嵌套文档都是Lucene文档。
因此,如果您要查找Lucene文档的总数,如果每个y
顶级文档都有parents
个父项,并且每个z
元素都有x * (1 + (y * (1 + z)))
子元素,然后对于每个顶级文档,您将获得x
Lucene文档。
它是否适合您的群集,完全取决于y
,z
和COVERALLS_REPO_TOKEN
的值。