2014-01-28 71 views
0

我有我的project.The要求像查詢一個問題,就是「喜歡」 srarch在1000萬左右的名稱,例如:「LIKE」查詢算法


艾米 福特 菲爾 jedwk edwords jones

我想要'sww'的結構名稱應該是'jedwk'和'edwords'。 就像「選擇*從表名'像'%edw%'」在sql中。


你有一些算法可以處理這個問題嗎? 謝謝!

+0

是一個簡單的循環慢?如果是這樣,算法可能不會幫助。你需要一個*數據結構*。 –

+0

您正在尋找字符串搜索方法?只需谷歌爲它或使用維基百科:http://en.wikipedia.org/wiki/String_searching_algorithm –

回答

0

您可能可以使用suffix tree的變體,其中樹中的每個葉子都包含對此後綴引用的原始字符串的引用。

這將允許您按照後綴樹上的輸入查詢的路徑,並從那裏執行DFS以獲取從此子字符串可訪問的所有葉子。每個葉子將包含相關的字符串 - 並且您只需要提取它們。


PS注意,大多數信息檢索系統不允許一個「子」的搜索中,只有一個「前綴搜索」 - 這是更容易實現,使用trie例如。

+0

謝謝!我將使用這個算法。 – spruce