Я использую эластичный поиск через шинный камень.
Учитывая эту структуру для индексации моей модели ресурсов
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_files с заданным идентификатором resource_file_category?
я просмотрел документы эластичного поиска и думаю, что мог бы использовать дочерний фильтр 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» или есть ли лучший/более простой способ сделать это... любые советы приветствуются;)