0

我目前正在使用 Ture/ElasticSearch 为我的数据库使用 Mongoid/MongoDB。我想根据数组过滤我的结果_id。这是一些类似于我正在尝试的伪代码:

search = Tire::Search::Search.new()
search.filter :terms, :_id => [array_of_ids]

当我换出:_id属性并尝试使用另一个索引属性时,它工作正常。但是,使用:_id,它不返回任何结果。

4

1 回答 1

0

原来你不允许过滤:_idor :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.

于 2012-12-17T22:25:09.580 回答