是否可以使用Tire gem从ES索引中批量删除文档?

有一种批量导入的方法,但是删除呢?

批量导入示例:

articles = Article.where("id < 10")


Tire.index 'articles' do
     import articles
end

最佳答案

是的,有一种方法可以删除。但是,这应该基于一些标准来完成。

id_array = [array of ids to be removed]
query = Tire.search do |search|
        search.query { |q| q.terms :_id, id_array }
      end

index = Tire.index(index_alias)

Tire::Configuration.client.delete "#{index.url}/_query?source=#{Tire::Utils.escape(query.to_hash[:query].to_json)}"

引用:https://github.com/karmi/tire/issues/309

实际上,这使用了elasticsearch的按查询删除API。

10-04 21:40
查看更多