gab*_*iel 6 ruby ruby-on-rails mongodb elasticsearch tire
我想使用ElasticSearch + Tire来搜索存储在MongoDB中的内容.
但是,当我尝试执行搜索时,我收到以下错误:
SearchFtroller #index中的Tire :: Search :: SearchRequestFailed
404 : {"error":"IndexMissingException[[events] missing]","status":404}
Run Code Online (Sandbox Code Playgroud)
根据我的理解,这告诉我事件中缺少索引,即使我已经告诉它在我运行时生成它们db:setup.
模型:
class Event
include Mongoid::Document
include Mongoid::Timestamps
include Tire::Model::Search
include Tire::Model::Callbacks
field :name, :type => String
field :description, :type => String
field :started_at => Time
field :ended_at => Time
def to_indexed_json
self.as_json
end
end
Run Code Online (Sandbox Code Playgroud)
控制器:
def search
Event.tire.search(params[:q])
end
Run Code Online (Sandbox Code Playgroud)
有关如何解决此问题的任何想法吗?
BBJ*_*BJ3 12
......甚至更好,只需运行:
rake environment tire:import CLASS=Event FORCE=true
Run Code Online (Sandbox Code Playgroud)
您是否为您的事件模型建立了索引?你的场地模型呢?Elasticsearch也在寻找Venues索引
我有一个 rake 任务来重新索引我的模型
desc “重建索引事件”
任务 :reindex_events => :environment doRun Code Online (Sandbox Code Playgroud)batch_size = 1000 count = batch_size Event.all.find_in_batches(:batch_size => batch_size) { |objects| puts "Count: " + count.to_s count += batch_size Event.index.import objects }结尾
| 归档时间: |
|
| 查看次数: |
4834 次 |
| 最近记录: |