为什么 Elasticsearch 将字段数限制为 1000

gau*_*620 0 lucene elasticsearch

  1. 为什么 Elasticsearch 将字段总数限制为 1000?
  2. 它会导致性能下降吗?
  3. 如果会,为什么?在lucene中没有这样的限制。

另外,有人可以更详细地解释这些设置。

And*_*fan 6

我相信文档本身对这些设置的解释非常好。

在某些情况下,索引的映射是动态的(通常记录用例或用户基础设施中的某些流氓文档生成器),并且像这样可能会导致索引中有数十万个字段。通常发生这种情况时,只有少数文档在这些无数字段中具有值,而大多数文档则没有。从磁盘使用的角度来看,这不是一件好事。为什么这可能是一个问题,在文档的另一部分中再次很好地解释

然而,不好的部分是,大多数时候用户没有计划或没想到会有如此多的字段,我们为字段数引入的限制是为了保护这些场景中的用户免受伤害无意中。

如果您对索引有一个深思熟虑的映射,并且您知道 1000 个字段限制不适合您,您可以将其更改为适合您的用例和场景的数字:

PUT /test/_settings { "index.mapping.total_fields.limit": 2000 }