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