2014-07-18 41 views
2

我使用耐嚼的寶石綁ES到我的rails應用程序。我是耐嚼的新手,所以當我嘗試索引我的模型的字段時,我遇到了一個問題。該字段是DB中的文本字段,我在我的模型中將其序列化爲哈希。散列是動態的,可能在表單中包含0到n個元素。字段名稱是項目任何幫助將不勝感激。使用耐嚼來連接rails應用程序elasticsearch

{"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 

回答

1

如果有人得到一個解析錯誤確保ElasticSearch不具有任何上面的代碼工作正常

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 

它們是您定義之前定義的鍵,否則會拋出錯誤。

+0

感謝您的問題和答案。我有類似的情況,我的疑問是如何搜索和過濾字段'項目'。例如: - 獲取ModelName中的所有行,這些屬性值大於項「Object」中的鍵「1」的「特定值」。 –

相關問題