首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索类似树的结构化关系数据的算法(例如: elasticsearch)

搜索类似树的结构化关系数据的算法(例如: elasticsearch)
EN

Stack Overflow用户
提问于 2020-10-02 15:14:40
回答 1查看 152关注 0票数 2

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

代码语言:javascript
复制
living creatures
      /  \
    bird  fish
    / \    / \
canary Penguin

我正在寻找一种方式来打开/关闭搜索结果。例如,如果鸟被禁用,当对“鸟”一词进行搜索时,结果中不应出现鸟及其子女。如果启用了鸟,在搜索“鸟”一词时,就应该出现鸟(或鸟及其子女)。

问题2现在,我把这个树结构作为一个扁平列表放在弹性搜索中作为一个字段,怎样才能使它成为树结构(我知道我可以使用嵌套字段,但是考虑到我们有30个层次深度,10万个子文档只有几个子文档。

欢迎任何意见。

EN

回答 1

Stack Overflow用户

发布于 2020-10-02 18:45:20

在本例中,您不需要使用嵌套,您可以使用扁平列表,将最低级别的字段作为索引/主键,将每个父字段作为字段,这样您的条目就会成为

代码语言:javascript
复制
"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
}

然后,当您需要禁用条目时,您可以简单地禁用任何在其中包含鸟的文档,当然,数据是重复的,但这是noSQL

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64174050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档