mongodb - Elasticsearch MongoDb河引用处理

标签 mongodb search elasticsearch relation

我遵循了以下mongodb示例:http://doctrine-mongodb-odm.readthedocs.org/en/latest/tutorials/getting-started.html

我也在我的elasticsearch中安装了一条mongodb河:https://github.com/richardwilly98/elasticsearch-river-mongodb

一切正常,一个用户实体在mongodb中具有多个发布实体。当我查看elasticsearch时,有以下数据结构:

{
    "_index": "doctrine",
    "_type": "user",
    "_id": "53d7f246e2afecdc03d63af3",
    "_score": 1,
    "_source": {
       "_id": "53d7f246e2afecdc03d63af3",
       "email": "email@example.com",
       "name": "Bulat S.",
       "posts": [
          "{ \"$ref\" : \"BlogPost\", \"$id\" : \"53d7f246e2afecdc03d63af1\" }",
          "{ \"$ref\" : \"BlogPost\", \"$id\" : \"53d7f246e2afecdc03d63af2\" }"
       ]
    }
 }

这看起来也很好。但是我想知道对帖子的引用。我能想到的最简单的事情就是一个简单的post id数组,例如"posts": ["53d7f246e2afecdc03d63af1", "53d7f246e2afecdc03d63af2"]。这将使搜索非常容易。但是,我该如何处理河边提供的标记?在posts字段中是否有很好的查询要搜索?为什么"转义了?

最佳答案

双引号被转义,因为它们位于另一组双引号内。如果没有逃脱,则会过早发出字符串结尾的信号。

之所以看到DBRef字段中存储了posts,是因为Doctrine使用它们来映射关系。 checkout Doctrine - Simple References以仅存储ObjectId

关于mongodb - Elasticsearch MongoDb河引用处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25023349/

相关文章:

javascript - 从 mongo 集合中的数组为 Select2 选项创建标签对象

java - Jongo 解析 JSON 时出错

php - 搜索在 laravel 中不起作用

c++ - 检查N及其双重存在

elasticsearch - 如何从 `match_phase`查询中转义特殊字符?

regex - Elasticsearch中多词短语的接近度

MongoDB聚合变量创建多个字段?

javascript - 搜索引擎是否可以抓取 AJAX 网站?

elasticsearch - 富文本文件的本地索引

javascript - 使用 mongoskin 对 mongodb 进行单个查询或多个查询???