我想填充一个索引,但只有在我完成之后才能搜索它。有弹性搜索的标准方法吗?我想我可以设置"index.blocks.read": true
,但我想要一种能够提供弹性以获取可搜索索引列表的方法,而且我不知道如何使用该设置。关闭/打开索引也感觉有点麻烦。
我找到的解决方案是向每个索引添加一个文档来定义索引的状态。虽然查询索引列表有点烦人。特别是因为查询和分页2,000个索引状态文档的长列表是有问题的。滚动扫描是一种解决方案,因为它一次性为我提供了所有结果(因为每个分片最多只有一个索引状态文档)。虽然感觉就像我使用了错误的工具(即滚动扫描操作总是只进行一次滚动)。
我不想要一个引用所有索引的文档,因为我必须手动将垃圾收集与垃圾收集索引一起收集。但也许这是最好的权衡......
是否有我不了解的标准做法?
答案 0 :(得分:1)
如何使用别名?您的应用程序可以查询别名(例如live
),而不是直接查询索引。只要您的索引尚未就绪(即仍在填充),您就不会为其分配live
别名,因此索引无法搜索。
基本上,这个过程是这样的:
live
alias向其发送您的查询live
别名,并将live
别名分配给新的可搜索索引以下是a simple example来说明这一点。