elasticsearch中的可选字段

时间:2017-06-14 07:54:26

标签: elasticsearch lucene

假设1000个文档中只有10个文档有一个名为limitedEdition的字段,是否会为其他990文档添加某种开销,而这些文档中没有该字段limitedEdition的任何值?这些文档最终会在elasticsearch索引中具有空值/引用,有点像在sql中添加可空列?

{_id:1,category:[4],feature:[1,2]},
{_id:2,category:[5],feature:[3,5]},
{_id:3,category:[7],feature:[2,4]},
.....
{_id:10,category:[5],limitedEdition:1000}

我的项目中的可索引字段正在增长,因此我必须重新考虑这些稀疏列是应该存储在elasticsearch中还是重新组织字段。

1 个答案:

答案 0 :(得分:1)

虽然这是重复的,但这个领域最近有一些发展。使用Lucene 7(Elasticsearch 6.0的一部分),doc值的稀疏性得到了很大改善:

  

通过这些更改,您最终只需支付实际使用的doc值,索引大小,索引性能等。这与索引的其他部分相同,如发布,存储字段,术语向量等。 ,这意味着具有非常稀疏的doc值的用户不再看到合并时间过长或合并时索引变得意外巨大。

来自http://blog.mikemccandless.com/2017/03/apache-lucene-70-is-coming-soon.html

您可以在https://home.apache.org/~mikemccand/lucenebench/sparseResults.html上看到更改。