2

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

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

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

但是,我必须指定"index":"yes"能够按它过滤,对吧?

4

1 回答 1

2

如果要搜索字段,则必须对其进行索引。默认情况下,一个boolean字段是索引的,这样做会占用少量空间。将有一个文档列表 where"myfield": true"myfield": false.

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

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

查看有关映射的 elasticsearch 文档;核心类型部分,向下滚动到布尔类型。

于 2013-06-13T15:52:46.253 回答