我试图找到一个数据结构(和算法),让我来索引整个文本文档,并搜索它的子,也不管子字符串的大小。在索引过程中或结束时,数据结构应存储在磁盘中。数据结构索引整个文档和算法进行快速搜索任何规模大小子
例如,给定下面的句子:
The book is on the table
算法应该迅速(O(log(n))
)找到的出现的任何文本子集。
例如,如果输入是book
它应该找到它的所有实例,但这也应该是book is
和The book is
。
不幸的是,大多数解决方案通过令牌化的文本,并使用单独的标记使搜索工作。普通的数据库也可以索引任何文本,而不用担心子集搜索(这就是为什么SELECT '%foo%'
用线性搜索完成并需要很多?)。
我可以尝试从头开发的东西(可能是反向指标的变化?),但我很想发现有人这样做。
最类似的事情,我发现是SQLite3 Full-text search。
谢谢!
谢谢!这是非常相似,我一直在寻找的东西!我将如何将它存储在磁盘中?它有什么变化吗?为什么不是普通的前缀树? – Silas