gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 07:53:23 24 4
gpt4 key购买 nike

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

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

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

所以我只是删除了整个索引并遍历数据库中的所有元素以再次将它们添加回来。非常感谢您的帮助。

最佳答案

为了将来引用,这里有一个如何使用更新的完整示例

require 'tire'
require 'yajl/json_gem'

Tire.index 'articles' do
delete
create

articles = [
{ :id => '1', :type => 'article', :title => 'one', :tags => ['ruby'] },
{ :id => '2', :type => 'article', :title => 'two', :tags => ['ruby', 'python'] },
{ :id => '3', :type => 'article', :title => 'three', :tags => ['java'] },
{ :id => '4', :type => 'article', :title => 'four', :tags => ['ruby', 'php'] }
]

Tire.index 'articles' do
import articles
end

refresh

Tire.index 'articles' do
update 'article', 1, :doc => { :title => 'tone' }
end

refresh

s = Tire.search 'articles' do
query do
string 'title:T*'
end

filter :terms, :tags => ['ruby']

sort { by :title, 'desc' }
end

s.results.each do |document|
puts "* #{ document.title } [tags: #{document.tags.join(', ')}]"
end
end

gives

* two [tags: ruby, python]
* tone [tags: ruby]

关于ruby - 如何使用 Tire 和 elasticsearch 重新索引一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15320857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com