gpt4 book ai didi

具有多个父/子关系的 Elasticsearch

转载 作者:行者123 更新时间:2023-11-29 02:47:31 25 4
gpt4 key购买 nike

我正在构建一个具有复杂模型的应用程序,Book、User 和 Review 说。

评论包含图书和用户 ID。为了能够搜索至少包含一篇评论的书籍,我将这本书设置为评论的父级,并设置了路由。但是,我还需要找到撰写包含某些短语的评论的用户。

是否可以将图书和用户都作为评论的父级?有没有更好的方法来处理这种情况?

请注意,我无法更改/不愿意更改数据的建模方式,因为数据是从持久性数据库传输到 Elasticsearch 的。

最佳答案

据我所知,您不能拥有包含两个 parent 的文件。

我的建议基于Application-side join chapter of Elasticsearch the definitive guide :

  • 创建父/子关系Book/Review
  • 请确保您在 Review 映射中具有 user_id 属性,其中包含撰写该评论的用户 ID。

我认为这涵盖了您描述的两个用例:

  • Books that contain at least an review 可以用 has child filter 来解决/query
  • 撰写包含某些短语的评论的用户 可以通过使用您要搜索的短语查询评论并执行 cardinality aggregation 来解决。在字段 user_id 上。如果您需要用户信息,您必须使用检索到的 ID 查询您的数据库(或其他 Elasticsearch 索引)。

编辑:“给我这个月有以 John 开头的用户评论的书”

我建议您收集所有这些高级用例并对实现这些用例所需的数据进行非规范化处理。在这种特殊情况下,将用户名反规范化为 Review 就足够了。无论如何,elasticsearch 人都写过关于管理关系的文章 in their blogelasticsearch the definitive guide

关于具有多个父/子关系的 Elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29899494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com