问题1:我有一个树状的数据结构来搜索项目,例如。,
living creatures
/ \
bird fish
/ \ / \
canary Penguin
我正在寻找一种打开/关闭搜索结果的方法。例如,如果禁用bird,则在对术语“bird”执行搜索时,bird及其子级不应出现在结果中。如果启用了bird,则在搜索术语“bird”时,应该出现bird(或bird及其子级)。
问题2现在,我把这个树结构作为ElasticSearch中的一个扁平列表作为一个字段,使它成为树结构的最佳方法是什么(我知道我可以使用嵌套字段,但考虑到我们有30层深度和100000个子级,大多数文档只有几个子级)。
欢迎任何意见。
1条答案
按热度按时间agxfikkp1#
在这种情况下,您不需要使用嵌套,您可以使用展开列表,将最低级别的字段作为索引/主键,并将其每个父字段作为字段,这样您的条目将成为
当您需要禁用条目时,您可以简单地禁用任何包含bird的文档,当然数据是重复的,但这是nosql