gpt4 book ai didi

lucene - 有和没有_all的elasticsearch索引大小

转载 作者:行者123 更新时间:2023-12-02 22:51:15 33 4
gpt4 key购买 nike

有没有办法找到索引中各个字段的大小?

我有10个字段,并且_source已禁用。我没有字段的映射。

启用_all后,磁盘上的索引大小为95 mb

如果不使用_all(禁用),则磁盘上的索引大小为70 mb

我的理解是_all存储所有字段的副本。那么使用_all索引大小是否不会是两倍?为什么差异只有15 mb而不是47 mb?

谢谢

最佳答案

_all并非所有字段的副本;它只是另一个存储所有其他字段值的字段。

假设我们在索引中只有三个文档(d1d2d3),只有两个字段f1f2。见下文:

d1
{
"f1": "v1",
"f2": "v2"
},
d2
{
"f1": "v2",
"f2": "v2"
},
d3
{
"f1": "v1",
"f2": "v1"
}

现在,Lucene会将这些数据存储在倒排索引中,如下所示。

字段 f1的倒排索引:
"v1" -> "d1", "d3"
"v2" -> "d2"

字段 f2的倒排索引:
"v1" -> "d3",
"v2" -> "d1", "d2"

启用 _all后, _all字段将有一个附加的反向索引。

字段 _all的倒排索引:
"v1" -> "d1", "d3"
"v2" -> "d1", "d2"

如您所见,不带 _all的发布列表大小为6个文档,而带 _all的发布列表大小为10个文档而不是12个文档。

这只是一个简单的示例,证明启用 _all并不意味着索引大小会简单地加倍。

关于lucene - 有和没有_all的elasticsearch索引大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29504680/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com