【发布时间】:2012-09-04 11:54:20
【问题描述】:
我有一个问题,其中包含大量字符串或短语,它可能从 100,000 扩展到 100Million。当我搜索一个短语时,如果找到它会给我 ID 或数据库索引以供进一步操作。我知道哈希表可以用于此,但我正在寻找其他算法,它可以为我提供基于字符串生成索引的服务,也可以用于自动完成等其他一些功能。
我根据一些 SO 线程读取后缀树/数组,它们服务于目的,但消耗的内存超出了我的承受能力。有什么替代方法吗?
因为我的搜索只是在数百万个字符串的巨大列表中。没有文档,没有对 lucene 等搜索引擎不感兴趣的网页。
还阅读了倒排索引听起来很有帮助,但我需要学习哪种算法?
【问题讨论】:
-
当您说“在某些其他功能中有用”时,除了自动完成之外,您还有什么想法?
-
我认为常规的 trie 对于自动完成会更好,因为在树中的任何节点上,它的子树都会给出前缀的所有已知完成。
标签: database algorithm search indexing inverted-index