2

我正在使用耐嚼的 gem 将 ES 绑定到我的 rails 应用程序。我是耐嚼的新手,所以当我尝试索引模型的字段时遇到问题。该字段是数据库中的文本字段,我在模型中将其序列化为哈希。散列是动态的,并且可能在表单中包含 0 到 n 个元素。字段名称是items任何帮助将不胜感激。

{"0"=>{"property"=>"value","property"=>"value"},"1"=>{"property"=>"value","property"=>"value"}.......} 

当我做define_type时,如何在我的索引类中索引这样的字段?

这是我的索引器

require 'typhoeus/adapters/faraday'
class ModelNameIndex < Chewy::Index
  define_type ModelName do
  field :user_id, type: 'integer'
  field :enduser_id, type: 'integer'
  field :items, type: 'object'
  field :created, type: 'date', include_in_all: false,
    value: ->{ created_at } 
  end
end

我的模型

class ModelName < ActiveRecord::Base
  update_index('IndexName#name') { self }
  belongs_to :user
  serialize :items, Hash
end
4

1 回答 1

1

上面的代码工作正常

require 'typhoeus/adapters/faraday'
class ModelNameIndex < Chewy::Index
  define_type ModelName do
  field :user_id, type: 'integer'
  field :enduser_id, type: 'integer'
  field :items, type: 'object'
  field :created, type: 'date', include_in_all: false,
         value: ->{ created_at } 
  end
end

如果有人遇到解析错误,请确保 ElasticSearch 没有您之前定义的任何键,否则它将引发错误。

于 2014-07-25T19:11:57.210 回答