【问题标题】:search_data method not working with Searchkick reindexsearch_data 方法不适用于 Searchkick 重新索引
【发布时间】:2014-03-11 03:02:16
【问题描述】:

我的一个启用 Searchkick 的模型中有一个 search_data 方法,但 Searchkick 在要求重新索引时似乎没有兑现它。

这是我的模型(删节):

class Archive < ActiveRecord::Base
  searchkick

  def search_data
    {:creator=>self[:creator],:description=>self[:description],:pdf=>self.pdf_contents,:title=>self[:title]}
  end

  def pdf_contents
    Yomu.read(:text,File.read(path_to_file))
  end
end

在 Rails 控制台中,Archive.first.search_data 返回我所期望的:具有创建者、描述、pdf 和标题属性的对象。但是,Archive.first.reindex 会抛出一个错误,指出它无法解析 dateacquisitioned 字段。 ActiveRecord 对象(Archive.first)确实有一个 dateacquisitioned 属性,但正如您所见,它不在 search_data 方法的属性列表中。那么,为什么 Searchkick 的 reindex 方法在我没有要求的情况下尝试索引 dateacquisitioned 属性呢?

【问题讨论】:

    标签: ruby-on-rails-4 elasticsearch


    【解决方案1】:

    Tire(为 Searchkick 提供动力)在其 reindex 方法中调用 to_hash

    https://github.com/karmi/retire/blob/197325b4e7adfef3def5db187733c4530bd7dfed/lib/tire/index.rb#L317

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-08
      • 1970-01-01
      • 2016-02-24
      • 1970-01-01
      • 1970-01-01
      • 2019-03-02
      • 1970-01-01
      • 2023-03-09
      相关资源
      最近更新 更多