我目前正在为工作搜索系统编写一个小型测试 Web 应用程序。我有一张桌子空缺(主要要讲的桌子)。我需要对与用户查询匹配的空缺(在输入控件下方的建议列表中)进行快速 AJAX 更新。不同的 DBMS 提供了强大的编程扩展,例如Microsoft SQL Server 中的自由文本搜索……但我认为扫描物理文件需要大量时间。我的想法是基于将整个表Vacancy转移到 RAM 中,所以在我看来,这是有道理的,因为在这种情况下,数据检索需要更少的时间。因此,如果客户在文本框中键入“pro”之类的内容 - 建议列表会显示建议:
-产品经理
- 专业设计师
-程序员
-程序员 C#
-程序员Java
-物业管理员
-供应专家
当用户键入另一个字母“g”时,文本框的值将扩大为“prog”
并且列表会刷新:
-程序员
-程序员 C#
-程序员Java
为了实现这一点,我计划在节点中创建一个保存值的树索引,其中空缺前缀将扮演索引键的角色,节点值是空缺名称。索引仅使用数据表中的数据构建和填充一次。看看我在下面的意思: “专业” -> {
“产品经理”,
“专业设计师”,
“程序员”,
"程序员 C#",
“程序员Java”
“物业管理员”,
“供应专家”
}
因此索引构建器必须分析字符串列表并找到空位名称的最少前缀。然后,当构建器在先前找到的前缀之后找到带有字母的字符串时,它会创建一个子树节点(“prog”)(该节点中的数据值计数随着不断过滤而减少)并将自身添加到父节点(“专业”)“前卫” -> {
“程序员”,
"程序员 C#",
“程序员Java”}
}
你能告诉我自然适合解决这个问题的树索引类型吗?在寻找时间之前,它们中最好的是什么?谢谢