簡體   English   中英

屬性相關的動態索引(輪胎,Rails)-ElasticSearch

[英]Attribute dependent Dynamic Index (Tire, Rails) - ElasticSearch

我有一些紅寶石課

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?

紅寶石(1.9.3)滑軌(3.2.3)輪胎(0.4.2)

對於許多邊緣情況,這仍然是一個未解決的問題。 有很多方法可以查看Elasticsearch中的索引。

首先,完全可以這樣定義一個動態索引名稱:

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

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

其次,一種更加靈活,功能強大且面向未來的方法是在elasticsearch中使用別名功能

有關可能的靈感,請參見https://github.com/karmi/tire/blob/master/test/integration/index_aliases_test.rb#L66

然后,創建類似於mydocs_current索引別名(“虛擬索引”),並將其指向特定的物理索引,例如mydocs_2012_06 然后,您可以在cron作業等中旋轉此索引。

搜索時,您可以使用Tire.search DSL或Tire.search向模型類中注入其他索引/別名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM