当索引只有一种类型时,稀疏字段应用了多少?我正在制作一个包含大量小型文档的索引,这些文档都是相同的类型,并且包含许多字段。只有一小部分字段被填充,因为所有文档都是相同类型的。根据这篇文章,当帖子稀少时,人们会担心。这似乎表明,如果索引具有多个类型,它可能只是一个问题。如果索引只有一种类型怎么办?
一种类型中存在的字段也会消耗资源 此字段不存在的类型的文档。这是一般的 Lucene指数的问题:他们不喜欢稀疏性。稀疏的帖子 由于之间的高增量,列表无法有效压缩 连续比赛。对于doc值,问题更严重:for 速度原因,doc值经常保留固定数量的磁盘空间 对于每个文档,以便可以有效地处理值。这个 意味着如果Lucene确定需要一个字节来存储所有内容 给定数字字段的值,它也将消耗一个字节 没有此字段值的文档。
答案 0 :(得分:0)
稀疏性与许多类型并不严格相关。在使用多个类型而不是多个索引的博客文章(类型与索引)的上下文中,确实存在稀疏字段的缺点:如果在索引中定义了3种类型,其中每种类型都有一个字段:{{1}在类型field1
,type1
类型field2
和type2
类型field3
中,每个文档都添加到此索引中,无论它属于哪种类型, 将包含所有这三个字段(在Lucene级别)。但是对于每种类型,只有属于该类型的字段才有价值。这意味着索引的每个文档都将填充1/3。
这也是,为什么Elasticsearch要求具有相同名称但在不同类型中的字段具有相同的字段类型:因为在Lucene级别,这是该索引中所有文档的所有字段,无论是类型。
一个索引中的一种类型和具有3个字段的文档也会发生同样的情况。如果这些字段几乎没有值(就像你的情况一样),那么仍然会出现稀疏性。