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

时间:2018-07-09 05:12:11

标签: elasticsearch lucene

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

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

1 个答案:

答案 0 :(得分:1)

我相信explanation from the documentation itself在这些设置方面还不错。

在某些情况下,索引的映射是动态的(通常记录用例或用户基础结构中的某些恶意文档生成器),并且这样可能导致索引中成千上万个字段。通常发生这种情况时,只有少数几个文档在这些庞大的字段中具有值,而大多数文档则没有。从磁盘使用的角度来看,这不是一件好事。在another section of the documentation中再次很好地解释了为什么这可能是一个问题。

但是,糟糕的是,大多数情况下,用户不计划或不希望拥有如此多的字段,而我们为字段计数引入了 soft 限制是为了保护在这种情况下的用户免受意外伤害。

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

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