elasticsearch - ElasticSearch 关系查询?
问题描述
我有两个 ES 文档(作为示例):
{
"id": "person_1",
"name": "John"
}
{
"id": "organisation",
"employeesById": [ "person_1" ]
}
是否可以进行查询以返回所有拥有名为“John”的员工的组织,或者我是否必须对上面的数据结构进行非规范化并执行employeesById.employee.name?
解决方案
在不了解您的用例的情况下,我建议您尝试非规范化。例如,
{
"id": "person_1",
"name": "John",
"organisation": "organisation_id"
}
如果 (1) 两个文档都存储在同一个索引中,并且 (2) 一个人经常更改组织,那么保持非规范化文档的一致性将更加苛刻(需要检索和更新大量相关文档)。在这种情况下,我建议通过使用 Join 数据类型(指向 Elastic 文档的链接)并使用父连接查询来运行您的搜索(指向 Elastic 文档的链接)来定义关系人员组织。
推荐阅读
- spring - 如何全局配置 Spring jaxb2Marshaller?
- google-chrome - IE 不在 iframe 中显示页面
- angular - 订阅离子模式打开事件的通用方法
- python-3.x - 在while循环中从不同的值开始时,不同的布尔值输出相同的值= 0
- javascript - 谷歌图表 api 无效的行索引。应在 [0-4] 范围内
- javafx - JavaFx - 以静态方式初始化场景
- swift - 用 Swift 的 `guard` 语句捕获不一致的应用程序状态?
- codeigniter - 用户登录后如何将会话数据获取到 Codeigniter 控制器?
- c# - ASP。NET Core 2.2 EF - 数据库未播种
- visual-studio-2008 - 自 Windows 10 1809 以来无法构建 Windows CE Cab 项目