具有多个父/子关系的 Elasticsearch

2023-11-27

书籍、用户和评论说,我正在构建一个具有复杂模型的应用程序。

评论包含书籍和用户 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(使用前将#替换为@)

具有多个父/子关系的 Elasticsearch 的相关文章

随机推荐

  • Spring ApplicationListener 在 webapp 上被触发两次

    我有一个应用程序监听器 它应该在每次 web 应用程序启动时只执行一次 因为它加载基本的用户信息数据 public class DefaultUsersDataLoader implements ApplicationListener
  • while循环,如何从文本文件的第二行读取

    在过去的 2 个小时里 我已经尝试了一切方法来使其正常工作 但我在 shell 和编程方面的经验有限 我有一个循环 while IFS read var1 var2 var3 var4 var5 do statements here don
  • numpy 数组有多少内存? RAM 是限制因素吗?

    我使用 numpy 创建一个边长为 100 的立方体数组 因此总共包含 100 万个条目 对于这百万个条目中的每一个 我插入一个 100x100 矩阵 其条目由随机生成的数字组成 我正在使用以下代码来执行此操作 import random
  • 类似的 Try 块在 scala 中尝试/finally 块

    scala 的类似方式是什么Try to timer start try doThis finally timer cancel 鉴于 a 内的异常Try只需创建一个Failure值 与使用时将控制转移到外部 catch 块相反 try 你
  • 以表单形式使用时,accept-charset="UTF-8" 参数不会执行任何操作

    我在表单中使用accept charset utf 8 属性 发现当使用非ascii进行表单发布时 标头在请求标头中具有不同的接受字符集选项 我有什么遗漏的吗 我的表格看起来像这样
  • fopen() 是 Linux 中的线程安全函数吗?

    如果我使用 fopen 调用在多线程中打开同一文件 并将数据写入该文件 我应该使用互斥锁来确保数据不会混乱吗 如果两个线程都打开同一个文件fopen 它们每个都有独立的文件流 FILE 由引用同一文件的独立文件描述符支持 您可以独立写入两个
  • 理解 JavaScript 的真值和假值

    有人可以使用下面的示例数据解释 JavaScript Truthy 和 Falsy 我读过其他线程但仍然很困惑 var a 0 var a 10 5 var a 1 var a 1 根据我的理解 我相信var a 1 是唯一的真值 其余的都
  • 进一步理解setRetainInstance(true)

    What exactly当你打电话时发生setRetainInstance true on a Fragment 文档几乎不存在 这似乎是一个非常重要的功能 具体来说 我想知道这个序列 我编的 有多少是真实的 用户旋转设备 该片段已从Act
  • Android Studio 总是在开始“调试”后立即断开连接

    每次我尝试使用 Android Studio 调试任何项目时 应用程序都不会启动 并且控制台立即给出以下消息 连接到目标VM 地址 localhost 8603 传输 socket 测试运行开始与目标VM断开连接 地址 localhost
  • 如何在解决方案中获取具有给定类的完整命名空间的程序集名称和类名称?

    我正在使用 WPF 经常需要获取给定类的命名空间和程序集名称 但我不知道该怎么做 那么 当我们在解决方案资源管理器中浏览类或 和编辑类的代码时如何获取名称呢 请帮忙 您可以使用 Visual Studio即时窗口作为获取解决方案项目之一的程
  • 如何修改 Levenshtein 算法,以了解它是否插入、删除或替换了字符?

    所以我试图设计一个 Levenshtein 算法的衍生版本 在其中我跟踪我在字符串中所做的转换 插入 a 或用 a 代替 b Example 基本上 假设我正在计算 bbd 和 bcd 的编辑距离 编辑距离将为 1 变换将为 用 b 代替
  • 我可以更改 Android 自定义键盘的输出字体吗?

    我开发了一个android自定义键盘 我需要更改实际使用 unicode 打印的输出文本的字体样式 如何在整个设备的任何位置更改键盘文本输出的字体样式 而无需更改设备的默认字体 该字体也不在 Android 设备中 因此我们必须从开发键盘的
  • .NET 中的注册表:DeleteSubKeyTree 表示子项不存在,但是嘿,它确实存在!

    尝试删除子项树 HKEY CURRENT USER Software Microsoft Windows CurrentVersion Explorer FileExts hdr hdrsubkey 有一个子键 没有值 所以我使用这段代码
  • MySql 选择具有多个特定列的所有表

    我想获取所有具有 3 个特定列的表名 我想要的是从我想要得到的信息模式所有表名其中包含columnA AND columnB AND columnC 目前我正在使用类似的查询 SELECT DISTINCT TABLE NAME FROM
  • 如何使用 Python-NLTK 根据词汇内容(短语)解析句子

    Python NLTK 能否识别输入字符串并不仅根据空格而且根据内容解析它 可以说 计算机系统 在这种情况下就成了一个短语 谁能提供示例代码吗 输入字符串 用户对计算机系统响应时间看法的调查 预期产出 A 调查 的 用户 意见 的 计算机系
  • 如何在ServiceBus上通过sequenceNumber使用MessageReceiver.Receive方法

    我正在尝试从死信队列重新提交消息 我可以重播死信队列上的消息 这很好 问题是当我现在想从死信队列中删除它时 这是我正在尝试做的事情 var subscription mySubscription var topic myTopic var
  • 在闪亮的传单地图中使用标签和颜色时,图例标签不会内联显示

    当我想使用时labels and colors参数与addLegend 里面的函数shinyApp图例显示在楼梯中 如下所示 但如果我只渲染地图leaflet之外的shinyApp标签正确地内嵌显示 我见过这个帖子遇到同样的问题 但他们没有
  • 什么情况下需要使用 eval() 因为没有其他选择?

    I know eval出于速度和安全原因 应避免在 JavaScript 中使用 但就 PHP 而言 很少有人提到安全性 更常见的是 由于随意使用 您的程序运行速度比应有的速度慢eval 在什么具体情况下应该使用eval因为没有其他办法吗
  • 分析多线程程序[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我们的代码库已经有好几年了 所有原来的开发人员都早已不在了 它使用很多很多线程 但没有明显的设计或通用的架构原则 每个开发人员都有自己的多线程编程风格 因此有些线程使用队列相互通信
  • 具有多个父/子关系的 Elasticsearch

    书籍 用户和评论说 我正在构建一个具有复杂模型的应用程序 评论包含书籍和用户 ID 为了能够搜索至少包含一篇评论的图书 我已将图书设置为评论的父级并具有路由 但是 我还需要找到撰写包含某些短语的评论的用户 是否可以将书籍和用户同时作为评论的