我試圖找到一個數據結構(和算法),讓我來索引整個文本文檔,並搜索它的子,也不管子字符串的大小。在索引過程中或結束時,數據結構應存儲在磁盤中。數據結構索引整個文檔和算法進行快速搜索任何規模大小子
例如,給定下面的句子:
The book is on the table
算法應該迅速(O(log(n))
)找到的出現的任何文本子集。
例如,如果輸入是book
它應該找到它的所有實例,但這也應該是book is
和The book is
。
不幸的是,大多數解決方案通過令牌化的文本,並使用單獨的標記使搜索工作。普通的數據庫也可以索引任何文本,而不用擔心子集搜索(這就是爲什麼SELECT '%foo%'
用線性搜索完成並需要很多?)。
我可以嘗試從頭開發的東西(可能是反向指標的變化?),但我很想發現有人這樣做。
最類似的事情,我發現是SQLite3 Full-text search。
謝謝!
謝謝!這是非常相似,我一直在尋找的東西!我將如何將它存儲在磁盤中?它有什麼變化嗎?爲什麼不是普通的前綴樹? – Silas