已知關鍵詞的快速索引

關鍵詞已知的情況下,快速索引。

給定:1300個關鍵詞,在1000條信息中比較,將對應的關鍵詞和記錄id記錄下來。

分析:簡單測試,將1300個關鍵詞放入hashtable,循環1000次,一條條記錄做IndexOf(c# 中判斷字符串是否存在的方法),花費時間很長。

解決:重複太多,改進方法就是減小重複,將1300個關鍵詞取第一,第二個char作爲下標各自放入bit數組,建立第一個char對應的struct,包含該字符起頭的最長關鍵詞長度和最短關鍵詞長度以及相應的關鍵詞hash表。反向以最後和最後第二個char爲下標放入另一bit數組。
從0開始到字符串長度的循環,一個個char判斷,一旦遇到同時符合第一,第二個char都是的情況下進入關鍵詞檢查。當拿到關鍵詞,就偏移關鍵詞的長度。

效率在100多ms。

這不是最快的,而且內存使用不是最好。

如果你有不錯的想法,可以交流。


這適合一些搜索關鍵詞已知的情況,索引很小,速度也快。
發佈了43 篇原創文章 · 獲贊 0 · 訪問量 2244
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章