如何使用Tire和elasticsearch重新索引一个元素?

时间:2013-03-10 09:41:05

标签: ruby elasticsearch tire

我似乎无法弄清楚如何编辑索引元素。谷歌也没有给我一个答案。所以,我不确定它是否可能?我以前做的只是重新索引整个事情,但随着数据的增长,它变得越来越慢。如何在编辑后重新索引一个元素。

这就是我现在正在做的事情。

def add_ele(ele)

    Tire.index ELE_INDEX do
        store :id => ele.ele_id, :title => ele.title, :tags => ele.tags, :itunes_description => ele.itunes_description

        refresh
    end
end

def delete_ele_index
    Tire.index ELE_INDEX do
        delete
    end
end

所以我只删除整个索引并循环遍历数据库中的所有元素以再次添加它们。非常感谢你的帮助。

1 个答案:

答案 0 :(得分:2)

您无需删除索引 - 如果您第二次存储具有相同ID的文档,它将更新现有文档。

还有更新api,这使您无需计算和计算如果您只想更改几个字段,请传输整个文档。在最简单的形式中,您只需传递包含要更新的属性的哈希,例如:

update type, id, :doc => {:title => 'new title'}