1

我在我的 Rails 项目中使用 Elastic Search。我正在使用 elasticsearch-model gem 进行实时全文搜索。假设模型 A 属于模型 B。如果我在模型 AI 上进行搜索,我会根据我的搜索参数获得 10 条 A 记录。

A.search(x) => Gives 10 records which includes all attributes of A.

但是当我通过 A 访问模型 B 时,例如: ABsome_attrib 我得到

 undefined method B for <Elasticsearch::Model::Response::Result>

如何在 ElasticSearch 中加载关联?

我也想要搜索结果中的所有记录。如何在搜索方法中指定 match_all?

4

2 回答 2

1

对于关联模型,请参阅此链接https://github.com/elastic/elasticsearch-rails/blob/master/elasticsearch-model/examples/activerecord_associations.rb

Include Elasticsearch::Model and callbacks关注并做索引映射。
在两个关联模型中包含模块。

注意:不要忘记导入模型。

于 2016-04-22T11:28:46.660 回答
0

您可以使用 as_indexed_json 方法配置模型关联。这是它的伪代码:

def as_indexed_json(options={})
 self.as_json(
   include: {
     b: { only: :col1}
   }
 )
end
于 2015-12-04T05:29:05.007 回答