1

我在mysql中有一个现有数据。

我使用 rake 任务将所有记录从 mysql 导入到 elasticsearch

但是,我想知道当我在 Rails 中删除、更新、插入记录时如何保持同步

Rails 怎么会触发对 elasticsearch 的修改呢?谢谢

模型

require 'elasticsearch/model'
class Job < ActiveRecord::Base
  attr_accessor :deadline_asap
  include Elasticsearch::Model
  include Elasticsearch::Model::Callbacks  

end

耙任务

对于初始 ES 索引

  task :import_all => :environment do
    Job.__elasticsearch__.create_index!
  end
4

1 回答 1

1

它应该已经同步:添加

include Elasticsearch::Model::Callbacks

您的模型应确保任何修改都会调用 ElasticSearch API

要检查这一点,只需修改一个模型并使用您的 ES 搜索,它应该会为您提供包括最新更新的模型在内的结果。

更新:这是ElasticSearch-Model gem中的自动回调文档

于 2016-02-25T08:24:34.677 回答