在elasticsearch中是否需要布尔字段索引

时间:2013-06-13 06:07:44

标签: elasticsearch

我正在尝试优化我的弹性搜索。 我有几个布尔字段,我使用查询。 我可以省去他们,但这会给我的客户方面带来困难。

我的问题是,将这些字段设置为"index":"yes"是否会对我的索引性能产生显着的负面影响,例如索引时间和大小(除了明显的“存储”空间)?

布尔索引字段是否真的占用更多空间?它似乎不应该。此外,我认为为任何数据库创建这样的索引没有任何好处,不仅仅是elasticsearch。

但是,我必须指定"index":"yes"才能通过它进行过滤,对吗?

1 个答案:

答案 0 :(得分:2)

如果要搜索字段,则必须对其进行索引。默认情况下,boolean字段已编入索引,并且将占用少量空间。将有"myfield": true"myfield": false的文档列表。

如果您不想维护此索引,那么当您想要查找"myfield": true所需的文档时,您必须通过每个文档检查该字段。

如果您不想使用该字段进行搜索/过滤,请务必设置"index": "no",如果您将来改变对此字段的想法,请注意您需要重新编制所有内容的索引!

Have a look at the elaticsearch docs on mappings; the core types section,向下滚动到布尔类型。