【问题标题】:Does elasticsearch/lucene impose memory overhead for missing values in fieldcache?elasticsearch/lucene 是否会对字段缓存中的缺失值施加内存开销?
【发布时间】:2015-12-15 00:50:21
【问题描述】:

这个问题主要针对 Elasticsearch,但我相信答案将基于底层 Lucene 语义。

我正在考虑在同一个索引中使用多种类型。许多字段将是可排序的,并且许多字段将仅由一种特定类型使用。即:字段将是稀疏的,例如平均 10% 的覆盖率。

由于排序将所有文档的值保留在内存中(无论类型如何),我想知道是否存在与缺少字段值有关的内存开销(在我的情况下约为 90%)

【问题讨论】:

    标签: elasticsearch lucene


    【解决方案1】:

    在官方 Elasticsearch 博客上最近一篇名为 "Index vs Type" 的博文中,作者解决了一个常见问题,即选择使用多个索引还是多个类型对其数据进行建模。

    一个事实是 Lucene 索引不喜欢稀疏性。结果,作者说

    存在于一种类型中的字段也会消耗不存在该字段类型的文档的资源。 [...] doc 值的问题更严重:出于速度原因,doc 值通常为每个文档保留固定数量的磁盘空间,以便可以有效地处理值。

    有一个Lucene issue 旨在改善这种情况,它已在 5.4 中修复,并将在 Elasticsearch v2.2 中提供。即便如此,作者建议仍然以尽可能限制稀疏性的方式对数据进行建模。

    【讨论】:

      猜你喜欢
      • 2012-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      • 2021-12-10
      相关资源
      最近更新 更多