我想知道在以下情况下是否有任何方法可以从搜索例程中“隐藏”文档:
_bulk
_search
获取的文档。Elastic搜索是否具有某种事务支持 - 在提交事务之前,没有索引文档可用?
我预计在一个导入过程中索引的文档数量会非常多。所以我不能做一次_bulk
电话。
我尝试index.refresh_interval
索引设置并在导入过程结束时调用_refresh
。但它没有多大帮助 - 文件在导入过程中变得可以搜索。
答案 0 :(得分:4)
Elasticsearch不支持交易。您需要在客户端处理此功能。如果您只是添加文档(无更新),则可以将批次ID与每个记录相关联,并过滤掉批次ID为> =当前正在运行的批次的所有记录。在批处理结束时,如果要创建新记录,可以更新过滤器以包含刚刚完成的批次ID。您可以将此过滤器与别名相关联,这将使交换机对搜索者透明。但是,这种方法在更新的情况下不起作用。