对弹性搜索索引有太多不利的字段?

Dio*_*ian 8 lucene elasticsearch

假设我有一千个键,我想存储相关的值.直观的方法似乎是这样的

{
   "key1":"someval",
   "key2":"someotherval",
    ...
}
Run Code Online (Sandbox Code Playgroud)

这是弹性搜索索引的一个糟糕的设计模式,拥有数千个密钥吗?以这种方式引入的每个密钥是否会为索引下的每个文档创建开销?

Ale*_*vik 5

如果您知道键数有上限,那么几千个字段就不成问题。

问题是当您拥有一组无限制的键时,例如,当键是从一个值派生时,因为您将拥有一个不断增长的映射关系,因此也将具有集群状态。它还可能导致古怪的搜索。

这是一个足够常见的问题/问题,我在“ Elasticsearch搜索疑难解答”一文中为初学者专门介绍了一部分。

简而言之,成千上万个字段是没有问题的-无法控制映射。

  • 倒排索引的工作方式不是问题。本质上,术语在字典中带有某种字段的“前缀”。这里还有更多:https://www.found.no/foundation/elasticsearch-from-the-bottom-up/ (2认同)