问题1: I有一个类似树的数据结构来搜索项,例如,
living creatures
/ \
bird fish
/ \ / \
canary Penguin我正在寻找一种方式来打开/关闭搜索结果。例如,如果鸟被禁用,当对“鸟”一词进行搜索时,结果中不应出现鸟及其子女。如果启用了鸟,在搜索“鸟”一词时,就应该出现鸟(或鸟及其子女)。
问题2现在,我把这个树结构作为一个扁平列表放在弹性搜索中作为一个字段,怎样才能使它成为树结构(我知道我可以使用嵌套字段,但是考虑到我们有30个层次深度,10万个子文档只有几个子文档。
欢迎任何意见。
发布于 2020-10-02 18:45:20
在本例中,您不需要使用嵌套,您可以使用扁平列表,将最低级别的字段作为索引/主键,将每个父字段作为字段,这样您的条目就会成为
"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
https://stackoverflow.com/questions/64174050
复制相似问题