gpt4 book ai didi

algorithm - 搜索树状结构化关系数据的算法(使用示例:elasticsearch)

转载 作者:行者123 更新时间:2023-12-02 22:34:15 27 4
gpt4 key购买 nike

问题1:
我有一个类似树的数据结构来搜索项目,例如

living creatures
/ \
bird fish
/ \ / \
canary Penguin
我正在寻找一种打开/关闭搜索结果的方法。例如,如果禁用了鸟,则在对术语“鸟”进行搜索时,不应在结果中显示鸟及其子代。如果启用了鸟,则在搜索“鸟”一词时,应显示鸟(或鸟及其子代)。
问题2
现在,我将这种树结构作为 flex 列表中的一个扁平列表放入字段中,使其成为树结构的最佳方法是什么(我知道我可以使用嵌套字段,但是考虑到我们有30个级别的深度和100,000个级别子代,大多数文档只有几个子代。
欢迎任何意见。

最佳答案

在这种情况下,您不必使用嵌套,可以使用展平列表,将最低级别的字段作为索引/主键,并将其每个父级作为字段,因此您的条目将变为

"canary":{
"l1":"living creatures",
"l2":"carnivore",
"l3":"bird",
}
"dolphin":{
"l1":"living creatures",
"l2":"fish",
}
"Penguin":{
"l1":"living creatures",
"l2":"fish, bird",
"##assuming penguin is both
}
然后,当您需要禁用该条目时,您可以简单地禁用其中包含Bird的任何文档,当然会重复数据,但这不是noSQL。

关于algorithm - 搜索树状结构化关系数据的算法(使用示例:elasticsearch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64174050/

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