【问题标题】:Algorithms for key value pair, where key is string键值对的算法,其中键是字符串
【发布时间】:2012-09-04 11:54:20
【问题描述】:

我有一个问题,其中包含大量字符串或短语,它可能从 100,000 扩展到 100Million。当我搜索一个短语时,如果找到它会给我 ID 或数据库索引以供进一步操作。我知道哈希表可以用于此,但我正在寻找其他算法,它可以为我提供基于字符串生成索引的服务,也可以用于自动完成等其他一些功能。

我根据一些 SO 线程读取后缀树/数组,它们服务于目的,但消耗的内存超出了我的承受能力。有什么替代方法吗?

因为我的搜索只是在数百万个字符串的巨大列表中。没有文档,没有对 lucene 等搜索引擎不感兴趣的网页。

还阅读了倒排索引听起来很有帮助,但我需要学习哪种算法?

【问题讨论】:

  • 当您说“在某些其他功能中有用”时,除了自动完成之外,您还有什么想法?
  • 我认为常规的 trie 对于自动完成会更好,因为在树中的任何节点上,它的子树都会给出前缀的所有已知完成。

标签: database algorithm search indexing inverted-index


【解决方案1】:

如果此数据库索引在 MS SQL Server 中,您可以使用 SQL 全文索引获得良好的结果。其他 SQL 提供程序可能有类似的功能,但我无法提供帮助。

查看:http://www.simple-talk.com/sql/learn-sql-server/understanding-full-text-indexing-in-sql-server/

http://msdn.microsoft.com/en-us/library/ms142571.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    相关资源
    最近更新 更多