實現一個支持正則表達式的搜索引擎,有市場沒?

計劃寫個支持正則表達式的搜索引擎,目前實現了一個功能:創建2000萬個詞的字典(使用自動機壓縮,僅90M內存),給定一個正則表達式,可以在字典中高效地搜索能匹配該正則的詞(不需遍歷字典逐個匹配)。如果把這個技術用到搜索引擎上,有前途沒?


別折騰了,很多程序員都不會寫正則表達式。


沒有。

不討論技術,受眾太小了。我接觸到的程序員正則水平合格的不到10%,大家只記得一些元字元,只在不得不用正則的時候偶爾用一下。程序員還這樣,其它人就不用想了。


大規模資料庫在查詢問題上的唯一解是索引。索引的存在使得查詢操作的時間複雜度可以接近理論上的極限 O(log_2(N))。現有的搜索引擎都是如此。

而正則表達式的計算是計算,不是索引。對整個資料庫搜索一遍的時間複雜度是O(N)。是時間複雜度最差的方法。

以兩者的時間複雜度就已經天壤之別了。舉個例子,架設你的SE運行初期可以檢索1億網頁。每個假設1000詞。搜索哪篇文章里包含一個詞。索引方法的時間複雜度是大約是36.54。而使用正則表達式遍歷則是10^11。

這裡假設正則方法需要遍歷整篇文章才能確認,或者極端情況為要找的詞總是在文章最後。但就算加上一些優化手段,數量級上的差異太大了。

當然,對於計算過程的並行化等因素,對兩者是相同的。不再展開。


我不是程序員,但我會寫正則表達式

而且我希望把鹼基記法全部變成正則比如嘌呤是 [AG] 嘧啶是 [TUC]

不是 A 的是 [^A]

5" 端是 ^

3" 端是 $

所以這貨起名叫通用引物表示語言么

以上純屬扯淡,請勿當真


你說的這個技術更適合做搜索詞推薦,而不是搜索。。


正則形式肯定不適合直接暴露給用戶,通過合適的UI封裝,或許能作出一個有小眾用戶的se出來。

話說,通過用戶提供的短語和用戶的過往搜索記錄揣測用戶當前搜索需求才是正道,google正在往這方面努力。


搜索引擎技術和這種關鍵詞匹配查找技術相差太遠……


顯然不了解爬蟲抓回來的shit,很難精準的正則,而且意義不大。


時隔幾年做出來了嗎


推薦閱讀:

Wolfram|Alpha 的搜索引擎怎麼用?
搜索引擎如何判斷網頁或廣告主的「信譽度」高低?
Windows 10 集成 Cortana 功能未來會對傳統搜索引擎有哪些影響?
elasticsearch 在查詢的時候如何返回指定的欄位值?
如何通俗地、不用術語地解釋李彥宏的「超鏈分析」?

TAG:編程 | 谷歌Google | 正則表達式 | 搜索引擎 |