ElasticSearch索引和对其他文档的引用

时间:2013-04-01 16:06:57

标签: mongodb elasticsearch

我有一个ElasticSearch实例使用richardwilly98

河流对MongoDB数据库建立索引

索引有两种类型的文档:

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

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

  • document = {'user':{“$ id”: “5159a004c87126641f4f9530”}}
  • user_document = {'_ id':“5159a004c87126641f4f9530”,'username':'bob'}

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

有可能这样做吗? ElasticSearch是否有对象引用?

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

  1. http://www.elasticsearch.org/guide/reference/mapping/parent-field/
  2. https://github.com/richardwilly98/elasticsearch-river-mongodb/issues/64