我运行的ElasticSearch服务器使用优秀的Tire gem索引和搜索文档。一切都很好,除了我不确定如何手动从搜索索引中删除文档。
我已经倾倒了RDoc并搜索了几个小时,但这是我能找到https://github.com/karmi/tire/issues/309解决方案的唯一暗示。除了在curl周围构建自定义包装器并手动发出请求之外,还有更简单的方法吗?
另一个问题是我使用了名为ActsAsParanoid的软删除gem,因此Tire :: Model :: Callbacks不会删除软删除对象。
有什么想法吗?
答案 0 :(得分:10)
如果您只有ID(例如12345):
User.tire.index.remove 'user', '12345'
或更一般地说:
klass.tire.index.remove klass.document_type, record_id
(我认为这相当于remove @user
将在幕后做的事情)
答案 1 :(得分:6)
原来你可以手动从索引中删除软删除的对象,如下所示:
@user = User.find(id) #or whatever your indexed object is
User.tire.index.remove @user #this will remove them from the index
多数民众赞成!