2012-01-19 33 views
1

我有一個約有一百萬行的表格,裏面有500-600個文字,我正在這些文本中搜索單詞。但是迭代行和在文本內搜索從時間方面來看效率不高。任何想法?文本搜索算法

+0

你用什麼方法來存儲表格數據?平面文件? MySQL的?這對於你的問題 – Seph

+0

mssql varchar(max)來說是一個相當重要的信息,但我可以改變存儲方法。我正在使用的c#,mssql。 – Coenni

回答

2

有了這個稀缺的信息,我建議你看看inverted indexes。據我所知,易於構建和快速檢索您的案例。在任何類型的數據庫環境中也很容易實現,以防無法切換到已經支持它們的數據庫。

如果您提供更多信息,也許另一種解決方案也可以工作。

+0

但我也使用levenshtein方法(edit_distance)來查看兩個單詞(用戶輸入的單詞和數據庫文本中的下一個單詞)的相似程度。我們怎樣才能以相同的方法使用倒排索引和levenshtein。我正在考慮。因爲如果在文本中找不到'貓',我想給予迴應,也許你正在搜索'帽子'有這樣的文本,其中包括'帽子'或用戶輸入quute,'我認爲你正在尋找'相當」'。 – Coenni

+0

如果你想使用倒排索引和levensthein,你可以在一個trie中實現倒排索引。嘗試支持Levensthein查找,如果你做得對。每一片葉子將包含所有匹配文件的清單。請在下次問題中提供更詳細的信息,以便其他人直接找到合適的答案。 – LiKao