doc值

时间:2017-02-11 18:29:24

标签: elasticsearch lucene

我计划将Elasticsearch主要用于数据分析。我有大量的文件,有很多,数字(最多4个字节)的属性。我的文档中的大多数字段只有大约30%的值。如果我理解正确,我可以利用Doc Values功能,这与某些数据库中的柱状数据布局类似。我想知道Elasticsearch / Lucene将如何存储这些数据。是否使用了任何压缩(例如,运行长度),或者是密集数据布局,其中空值将在存储上占用与值相同的空间?

1 个答案:

答案 0 :(得分:0)

ElasticSearch的默认行为是在NULL值的情况下根本不添加字段。您可以使用null_value强制映射字段,但适用于支持NULL的类型。例如:long字段无法使用字符串null_value进行映射。

因此,要解决此问题,ElasticSearch不会为文档中缺少的字段分配默认空间。但是如果你查询一些从未有过值的字段,你可能会遇到MissingFieldException。要避免这种情况,请在建立索引之前显式映射字段。如果明确映射,请确保将字段的null_value属性设置为数据输入范围之外。