ruby-on-rails-4 - search_data方法不适用于Searchkick重建索引

标签 ruby-on-rails-4 elasticsearch

我的一个启用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 Console中,Archive.first.search_data返回我期望的结果:具有创建者,描述,pdf和标题属性的对象。但是,Archive.first.reindex引发错误,表明它无法解析获取日期的字段。 ActiveRecord对象(Archive.first)确实具有dateacquisitioned属性,但是如您所见,它不在search_data方法的属性列表中。那么,为什么在我没有要求Searchkick的reindex方法尝试索引dateacquisitioned属性的情况下呢?

最佳答案

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

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

关于ruby-on-rails-4 - search_data方法不适用于Searchkick重建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21733829/

相关文章:

javascript - 为 Fullcalendar eventRender 选择多个复选框

ruby-on-rails - 设计不适用于 Rails 4.0rc1

elasticsearch 自定义标记器 - 按长度拆分标记

javascript - Elasticsearch返回的结果大于范围内指定的结果

elasticsearch - ElasticSearch失败,出现OutOfMemoryError

ruby-on-rails - 如何处理工厂女孩中的外键关联

ruby-on-rails - Rails 4 + 自定义设计属性——ParameterSanitizer 错误

mysql - Rails 4 多项选择

performance - Elasticsearch:为每个用户的私有(private)搜索选择索引策略

elasticsearch - 分片到底是什么?