是否可以将弹性搜索索引标记为不完整?我可以检索"complete"索引的列表吗?



我想填充一个索引,但只有在完成后才能进行搜索。弹性搜索有标准的方法吗?我想我可以设置"index.blocks.read": true,但我想要一种方法,能够请求一个可搜索索引列表的弹性,我不知道如何使用这个设置。另外,关闭/打开索引感觉有点麻烦。

我发现的一个解决方案是为每个索引添加一个文档,定义该索引的状态。尽管查询索引列表有点烦人。特别是因为查询和分页包含2,000个索引状态文档的长列表是有问题的。滚动扫描是一种解决方案,因为它一次给了我所有的结果(因为每个分片最多有1个索引状态文档)。虽然这感觉就像我使用错误的工具的工作(即一个滚动扫描op,总是做一个滚动)。

我不想要一个文档引用所有的索引,因为那样我就不得不手动垃圾收集它与垃圾收集索引。但也许这是最好的权衡…

有我不知道的标准做法吗?

使用别名如何?而不是直接查询索引,您的应用程序可以查询别名(例如live)。只要你的索引还没有准备好(即仍在填充),你不分配live别名给它,因此索引将无法搜索。

基本上,过程是这样的:

    创建索引及其设置和映射
  1. 填充它
  2. 完成后,将live别名分配给它并发送针对它的查询
  3. 以后需要索引新数据时,创建另一个索引
  4. 你填充新索引
  5. 完成后,切换别名,即从以前的可搜索索引中删除live别名,并将live别名分配给新的可搜索索引

相关内容

最新更新