【发布时间】:2015-08-10 06:54:53
【问题描述】:
我们计划使用此处提到的过滤别名 - https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html
我们的输入数据将是一个流,流的每一行都对应一个我们想要存储在 ES 中的对象。
每个对象都包含一个“id”,我们将其用于路由和过滤。
问题 - 我们如何以高效的方式创建别名和索引数据?
-- 我们是否为所有数据编制索引,跟踪所有唯一的 'id',最后创建过滤别名?或者
-- 对于每个对象,检查该 'id' 的别名是否存在;如果它没有创建一个?
我倾向于第一种方法。与第二种方法相比,它是否可取且高效?
TIA。
【问题讨论】:
-
你有多少个索引?你要索引多少数据?在您为初始数据集编制索引后,是否会有更多具有不同 ID 的数据需要创建新的过滤别名?
-
@Val - 我的应用程序只有一个索引(我们有一个其他应用程序共享的通用 ES 集群)。这是一项在 ES 中填充数据的日常工作,我们认为它不超过千万个条目(每次运行)。是的,在随后的每次运行中,我们可能会添加对应于不同 id 的新条目,这将需要创建新的过滤别名。
-
好吧,还有一件事:该 id 字段的基数是多少(即大约有多少个不同的唯一 ID)?
-
@Val - 唯一 ID 不应超过 100 个,因此过滤别名的数量应不超过 100 个。
-
好的,别名的全部目的是能够在一个逻辑名称下联合多个索引,但是由于您只有一个索引,所以您根本不需要别名。如果您在该特定 id 字段上使用路由,那么在我看来,实现您所需要的就绰绰有余了。
标签: elasticsearch aliases