我在集成 Rails 时遇到了一些问题。3.2.13、轮胎 0.6.0、弹性搜索 0.90.2 和延迟作业 3.0.5。
当我尝试使用延迟作业来推迟索引操作时,索引是可以的,但会忽略以下搜索排序。如果我用 rake 环境轮胎重新索引整个索引:导入:所有,一切都很好。
我的代码:
class Task < ActiveRecord::Base
#...getters/setters omitted...
include Tire::Model::Search
#include Tire::Model::Callbacks #don't use callback, we use delayed job indexing
after_commit {tire.delay.update_index } #DELAYED JOB
after_destroy {tire.delay.update_index } #DELAYED JOB
mapping do
indexes :id, :index => :not_analyzed
indexes :title
indexes :is_open, type: 'boolean'
end
def self.search(params)
tire.search(:page => (params[:page] || 1), load: true) do
query { string params[:q], :default_operator=>"AND"} if params[:q].present?
sort do
by :is_open, "desc" #THIS SORT IS IGNORED WHEN I INDEX WITH DELAYED JOB, BUT IT WORKS WHEN I INDEX WITHOUT IT (WITH TIRE CALLBACKS OR WITH delay OMITTED).
end
end
end
end
你知道我在做什么错吗?
谢谢你。
吉里·赫拉迪尔