gpt4 book ai didi

c# - 随机存取存储器中的索引数据库

转载 作者:搜寻专家 更新时间:2023-10-30 23:15:42 25 4
gpt4 key购买 nike


我目前正在为求职系统编写一个小型测试 Web 应用程序。我有一个表Vacancies(要讲的主表)。我需要快速 AJAX 更新与用户查询匹配的空缺职位(在输入控件下方的建议列表中)。不同的 DBMS 提供了强大的编程扩展,例如 Microsoft SQL Server 中的 自由文本搜索 ..但我认为扫描物理文件需要花费大量时间。我的想法是基于将整个表 Vacancies 转移到 RAM 中,所以在我看来,这是有道理的,因为在这种情况下,数据检索需要更少的时间。因此,如果客户在文本框中键入“pro”之类的内容 - 建议列表会显示建议:

        -product manager         -professional designer         -programmer         -programmer C#        -programmer Java        -property administrator        -provision expert       
当用户键入另一个字母“g”时,文本框的值会扩大到 “prog”并刷新列表:
        -programmer         -programmer C#        -programmer Java        
为了实现这一点,我计划创建一个在节点中保存值的树索引,其中 vacancy prefix 将扮演 index key 的角色,节点值是 空缺名字。索引仅使用数据表中的数据构建和填充 一次。看看我下面的意思:
 "pro" -> {           "product manager",            "professional designer",           "programmer",           "programmer C#",           "programmer Java"           "property administrator",           "provision expert"            } 
因此,索引构建器必须分析字符串列表并找到空缺名称的 最少前缀。然后,当构建器在先前找到的前缀之后找到带有字母的字符串时,它会创建一个子树节点 ("prog") (该节点中的数据值计数会随着不断过滤而减少)和将自身添加到父节点 ("pro")
"prog" -> {           "programmer",            "programmer C#",           "programmer Java"}            }
你能告诉我自然适合解决这个问题的树索引类型吗?到寻道时间,它们中最好的是什么?谢谢

最佳答案

这个问题几年前就解决了,你正在重新创建Lucene :

对于您想要的树的值(value),您需要一棵Patricia 树或一棵Radix 树。就将所有数据存储在 RAM 中而言,这是一个坏主意,因为还有其他应用程序使用 RAM,而不仅仅是您的索引。目前,我正在删除某人的自定义数据库,他们认为以这种方式实现是个好主意,并将其替换为真正的数据库解决方案。

关于c# - 随机存取存储器中的索引数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14269918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com