书籍、用户和评论说,我正在构建一个具有复杂模型的应用程序。
评论包含书籍和用户 ID。
为了能够搜索至少包含一篇评论的图书,我已将图书设置为评论的父级并具有路由。但是,我还需要找到撰写包含某些短语的评论的用户。
是否可以将书籍和用户同时作为评论的父级?有没有更好的方法来处理这种情况?
请注意,我无法更改数据建模的方式/不愿意这样做,因为数据是从持久性数据库传输到 Elasticsearch 的。
据我所知,你不能有两个父母的文件。
我的建议基于Elasticsearch 权威指南的应用程序端连接章节:
- 创建父/子关系
Book
/Review
- 确保你有
user_id
财产在Review
包含撰写该评论的用户 ID 的映射。
我认为这涵盖了您描述的两种用例,如下所示:
-
Books that contain at least one review
可以用 has child 来解决filter/query
-
Users who wrote reviews that contain certain phrases
可以通过使用您要搜索的短语查询评论并执行基数聚合在现场user_id
。如果您需要用户信息,您必须使用检索到的 ID 查询数据库(或另一个 Elasticsearch 索引)。
Edit: "give me the books that have reviews this month written by user whose name started with John"
我建议您收集所有这些高级用例并对实现它们所需的数据进行非规范化。在这种特殊情况下,将用户名非规范化为就足够了Review
。无论如何,elasticsearch 人们已经写过有关管理关系的文章在他们的博客中 or Elasticsearch 权威指南
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)