弹性搜索方式隐藏文档格式搜索直到导入过程结束

时间:2013-03-29 16:30:08

标签: elasticsearch

我想知道在以下情况下是否有任何方法可以从搜索例程中“隐藏”文档:

  1. 导入流程每天运行。
  2. 导入流程通过多次调用_bulk
  3. 将文档编入索引到Elastic Search
  4. 导入过程正在运行时,我不会导入只能通过_search获取的文档。
  5. Elastic搜索是否具有某种事务支持 - 在提交事务之前,没有索引文档可用?

    我预计在一个导入过程中索引的文档数量会非常多。所以我不能做一次_bulk电话。

    我尝试index.refresh_interval索引设置并在导入过程结束时调用_refresh。但它没有多大帮助 - 文件在导入过程中变得可以搜索。

1 个答案:

答案 0 :(得分:4)

Elasticsearch不支持交易。您需要在客户端处理此功能。如果您只是添加文档(无更新),则可以将批次ID与每个记录相关联,并过滤掉批次ID为> =当前正在运行的批次的所有记录。在批处理结束时,如果要创建新记录,可以更新过滤器以包含刚刚完成的批次ID。您可以将此过滤器与别名相关联,这将使交换机对搜索者透明。但是,这种方法在更新的情况下不起作用。