gpt4 book ai didi

ruby-on-rails - 依赖属性的动态索引(轮胎、 rails ) - ElasticSearch

转载 作者:行者123 更新时间:2023-12-03 00:44:15 25 4
gpt4 key购买 nike

我有一些 ruby 课

class MyClass
include Tire::Model::Persistence
attr_accessor :date

mapping do
index_name Proc.new{|o| "my_class_#{o.date_index}" } # How to?
end

def initialize(d)
@date = d
end

def date_index
@date.strftime("%m%y")
end
end

初始化类后,如何动态设置 index_name?

ruby (1.9.3)
rails (3.2.3)
轮胎 (0.4.2)

最佳答案

对于许多边缘情况,这仍然是一个 Unresolved 问题。在 elasticsearch 中查看索引的方法有很多种。

首先,完全可以像这样定义一个动态索引名称:

Article.index_name { "articles-#{Time.now.year}" }

https://github.com/karmi/tire/blob/master/lib/tire/model/naming.rb#L10-35

其次,更灵活、更强大且面向 future 的方法是使用 aliases feature in elasticsearch .

https://github.com/karmi/tire/blob/master/test/integration/index_aliases_test.rb#L66寻找可能的灵感。

然后,您创建类似 mydocs_current 的内容索引别名(“虚拟索引”),并将其指向特定的物理索引,比如 mydocs_2012_06 .然后,您在 cron 作业等中轮换此索引。

搜索时,您可以使用 Tire.search DSL 或在你的飞行中将不同的索引/别名注入(inject)模型类。

关于ruby-on-rails - 依赖属性的动态索引(轮胎、 rails ) - ElasticSearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10879991/

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