0

我有一个 ElasticSearch 实例,通过richardwilly98使用 River 索引 MongoDB 数据库

有两种类型的文档被索引:

  • 引用用户的文档
  • 代表用户的文件

当这些对象被添加到 mongodb 时,richardwilly98 的河流会生成如下内容:

  • 文档={'用户':{“$id”:“5159a004c87126641f4f9530”}}
  • user_document = {'_id':"5159a004c87126641f4f9530",'用户名':'bob'}

如果我搜索“bob”,我希望返回任何引用 bob 文档的文档。目前这不会发生,因为用户名字段无论如何都与引用文档无关。

是否有可能做到这一点?ElasticSearch 有对象引用吗?

谢谢 - 如果我不清楚,请告诉我。

4

2 回答 2

2

如果每个文档不超过一个用户,您可以将文档索引为用户的级。然后您可以使用has_parent过滤器执行搜索。但是,如果一个文档可以属于多个用户,则必须分两步执行搜索。首先,您必须找到用户,然后发出另一个搜索来查找文档。

于 2013-04-02T10:37:30.677 回答
1

Elasticsearch 支持父字段 [1]。MongoDB River 支持自定义映射 [2],因此现在可以使用 _parent。

  1. http://www.elasticsearch.org/guide/reference/mapping/parent-field/
  2. https://github.com/richardwilly98/elasticsearch-river-mongodb/issues/64
于 2013-04-16T11:24:53.107 回答