我遵循了以下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/