Am正在为仪表板用例构建自动完成功能。筛选器的大小将为10,基数可能很大。如您所知,ES和SOLR通过诸如prefix,Suggested,Edge Ngram等各种方法解决了此问题。但是我相信这些方法都没有考虑多个过滤器之间的关系。例如,假设我们有一个简单的数据集
Id->部门(1:n) 部门->项目(1:n)
然后从本质上讲,如果用户输入了id的一部分,我们应该显示非常简单的内容的自动完成功能,但是在用户从自动完成建议的ID列表中进行选择时,我们还应该列出与所选ID相关的所有部门。
Id-(1,2,3) 部门-(21,22,23,24,25,26) 项目-(100,101,102,103,104,105,106,107,108,109,110,111)
假设关系就像
Id部门物品 1 21 100,101 22 102,103 2 23 104,105 24 106,107 3 25 108,109 26 110,111
然后在ID中选择1应该在部门字段中列出21,22,然后选择部门21应该显示100,101
我不在UI层中寻找任何解决方案,而是在后端中寻找任何解决方案。我正在考虑实现b树结构来解决该问题,然后才想知道是否有任何开源工具可以解决该问题。