我目前正在使用Tyre / ElasticSearch将Mongoid / MongoDB用于我的数据库。我想根据_id
的数组过滤我的结果。这是一些类似于我正在尝试的伪代码:
search = Tire::Search::Search.new()
search.filter :terms, :_id => [array_of_ids]
当我换出:_id
属性并尝试使用另一个索引属性时,它可以正常工作。但是,对于:_id
,它不会返回任何结果。
答案 0 :(得分:0)
原则上,您无法按:_id
或:id
进行过滤。无论这是特定于Tire还是特定于ElasticSearch,我都不确定。
在我的轮胎自定义映射中,我已经继续并添加了一个重复字段作为别名。更多伪代码:
tire.mapping do
indexes :id, :index => :not_analyzed
indexes :content_id, :analyzer => :keyword,
:as => "_id"
...
end
重要的部分是indexes :content_id, :as => "_id"
。从那时起,我使用:content_id
进行过滤。