gpt4 book ai didi

elasticsearch - Elasticsearch 联接/脚本查询,使用子查询的输出

转载 作者:行者123 更新时间:2023-12-03 01:54:32 28 4
gpt4 key购买 nike

我有一种情况要在具有数据的elasticsearch中编写搜索查询,如下所示

{id:"p1",person:{name:"name",age:"12"},relatedTO:{id:"p2"}}
{id:"p2",person:{name:"name2",age:"15"},relatedTO:{id:"p3"}}
{id:"p3",person:{name:"name3",age:"17"},relatedTO:{id:"p1"}}

场景:-用户想要搜索与p2相关的人员,并使用每个相关人员查找与之相关的人员

1.首先找到与p2相关的人答案= p1
2.现在找到与p1 answer = p3相关的人。 (目前的要求是仅达到1级),因此无需查找与p3相关的人员。最终结果应为p2,p1,p3。
正常情况下,我们将编写一个嵌套的sql以获取结果。如何一次性使用 flex 查询语言来实现此目标

最佳答案

一口气,您将需要使用Parent-Child-Relationships,但是我不会一开始就建议您这样做,因为它的性能不是很高。顺便说一句:还支持Grandparents and Grandchildren

您还可以使用Application Side Joins-意味着您将执行多个查询,直到获得所需的内容。 (请注意,第一个结果集应非常小,否则可能会增加成本)

我真正向您推荐的是阅读docu并重新考虑您的用例。
如果您想在Facebook或google +中建立关系模型,我会告诉您寻找NoSQL Graph Database


注意:理想情况下,在Elasticsearch中数据是平坦的,这意味着denormalized

关于elasticsearch - Elasticsearch 联接/脚本查询,使用子查询的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37601670/

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