我试图让 STI 从几个小时开始就使用轮胎/mongoid。我希望有一个人可以帮助我。
我有两个具有不同索引的模型。应该可以通过 Event.search 搜索两个索引,但也可以使用 CoursePlan.search 仅搜索适当的索引。
第一个模型:事件
# encoding: utf-8
class Event
include Mongoid::Document
include Mongoid::Timestamps
include Tire::Model::Search
include Tire::Model::Callbacks
# rest of class omitted...
# Elasticsearch
index_name "events" # Indexname /initializers/tire.rb
mapping do
indexes :_id, :index => :not_analyzed
indexes :title
indexes :place
indexes :description
indexes :fill_out
indexes :current_user_keyword, analyzer: "keyword"
end
第二种模式:课程计划
# encoding: utf-8
class CoursePlan < Event
include Mongoid::Document
include Mongoid::Timestamps
include Tire::Model::Search
include Tire::Model::Callbacks
include TimeHelper
# rest of class omitted...
# Elasticsearch
index_name "course_plans"
tire.index.add_alias "events"
mapping do
indexes :_id, :index => :not_analyzed
indexes :title
indexes :place
indexes :description
indexes :fill_out
indexes :user_email
indexes :course_title
indexes :course_area
indexes :course_user_email
indexes :date
end
我已经尝试过richarddong 的解决方案,请参阅轮胎问题#178。但这似乎只在某些情况下有效。
这个问题有可行的解决方案吗?也许我只是搞错了。
感谢您的时间。