我正在使用彈性搜索輪胎寶石。彈性搜索嵌套
鑑於這種結構,索引我的資源模型
mapping do
indexes :_id
indexes :version, analyzer: 'snowball', boost: 100
indexes :resource_files do
indexes :_id
indexes :name, analyzer: 'snowball', boost: 100
indexes :resource_file_category do
indexes :_id
indexes :name, analyzer: 'snowball', boost: 100
end
end
end
我怎樣才能檢索到所有具有給定的resource_file_category ID resource_files的資源?
我看了在彈性搜索文檔,我認爲可以使用具有子過濾 http://www.elasticsearch.org/guide/reference/query-dsl/has-child-filter.html
我已經嘗試過這種方式
filter :has_child, :type => 'resource_files', :query => {:filter => {:has_child => {:type => 'resource_file_category', :query => {:filter => {:term => {'_id' => params[:resource_file_category_id]}}}}}}
,但如果是我不知道可能/有效做一個「嵌套的has_child過濾器」,或者如果有更好/更簡單的方法來做到這一點...任何建議是值得歡迎的)
我的建議是從父/子遠離,只是非規範化的類別到的記錄,作爲IDS /名稱的數組/等。一旦你得到這個工作,你可以繼續使用嵌套或父/子功能。 – karmi 2012-07-25 10:55:25