我有一个表格,它通过轮胎显示来自 elasticsearch 的数据。该表以 json 格式异步检索数据。因此,如果我尝试更改条目,表仍然显示条目的“旧”状态(保存到索引/表后直接重定向操作)。当我删除或添加条目时也是如此。
但这只是偶尔发生。我发现当我在检索数据之前向索引操作添加“睡眠(0.3)”时,它可以工作。
我的模型:
# encoding: utf-8
class Group
include Mongoid::Document
include Mongoid::Timestamps
include Tire::Model::Search
include Tire::Model::Callbacks
# Relations
has_and_belongs_to_many :users, index: true
has_many :group_rights, dependent: :destroy
accepts_nested_attributes_for :group_rights, allow_destroy: true, autosave: true
###
# Validates
validates :name, presence: true
validates :description, presence: true
###
# Mongoid Fields
field :name, type: String
field :description, type: String
###
# Elasticsearch
index_name "#{Tire::Model::Search.index_prefix}groups" # Indexname /initializers/tire.rb
mapping do
indexes :_id, :index => :not_analyzed
indexes :name
indexes :description
end
def to_indexed_json
to_json
end
###
# Methods
###
end
我认为这与轮胎回调有关。但是为什么这么慢?是否有更好的方法来相应地更新索引。
我在 debian 挤压上使用 Elasticsearch 0.90 和 openjdk-6。
谢谢,帕特里克