自动完成与层次结构相关的字段

时间:2018-08-07 07:35:54

标签: java elasticsearch data-structures solr

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树结构来解决该问题,然后才想知道是否有任何开源工具可以解决该问题。

0 个答案:

没有答案