提高 TSDB 中非度量字段的存储效率
为 TSDB 中的非度量字段添加新的 doc_values
编码,利用 TSDB 的索引排序。虽然多个文档中使用的术语(例如主机名)在术语字典中仅存储一次,但对存储在 doc_values
中的术语字典的引用存在大量重复(序数词)。在 TSDB 中,文档(因此 doc_values
)按维度和时间戳隐式排序。这意味着对于每个时间序列,我们都存储相同序数的长时间连续运行。通过这一更改,我们引入了一种编码,可以检测并有效存储相同值的运行(例如 1 1 1 2 2 2 …
)和循环值的运行(例如 1 2 1 2 …
)。在我们的测试中,我们发现存储大小减少了约 13%。这种编码的有效性取决于使用了多少非度量字段,例如维度。非度量字段越多,这种改进就越有效。
同义词 API 正式发布
删除 Synonyms API 的 Beta 标签以使其成为 GA。
_field_caps
中的标记仅返回索引中包含值的字段
我们添加了对通过删除没有值的字段来过滤字段功能 API 输出的支持。这可以通过新添加的 include_empty_fields
参数来完成,该参数默认为 true。
新 Lucene 9.10 版本
- https://github.com/apache/lucene/pull/13090:构建分位数时防止 ScalarQuantizer 中的巨大分配。
- https://github.com/apache/lucene/pull/12962:加速并发多段 HNSW 图搜索
- https://github.com/apache/lucene/pull/13033:对数字/日期/ip 字段的范围查询现在会在其值与查询范围不相交的段上提前退出。当
bool
查询中有其他必需子句并且范围过滤器很窄时(例如,过滤最后 5 分钟。 - https://github.com/apache/lucene/pull/13026:混合
filter
和should
子句的bool
查询现在将通过should
子句。当按降序分数排序时,这应该会产生加速。