全文檢索是一套比較複雜的系統,在介紹架構之前,需要介紹一些基本的模組。
千萬級資料的全文檢索搜尋引擎--分詞
(一)二元分詞
在我們的第乙個版本中,使用的是二元分詞,大概用了接近一年的時間,二元分詞就是每相鄰2個詞做一次切分,不包含英文,英文單獨切分。
二元分詞乙個缺點是索引比較大,有大量的冗餘,帶來儲存和索引查詢的壓力
第二個缺點是無法搜尋單字,這是乙個比較大的問題,在運營期間,這個缺點一直受到運營人員和市場人員的質疑。也是基於這個原因,我們引入了第二套分詞方法。
(二)辭典分詞
系統使用了乙個辭典,其中包含了一萬多條常用的短語,分詞時先在辭典中查詢出所有可能的分詞集合,然後選擇分詞粒度最小的乙個集合(後台索引時)。搜尋時,對使用者數輸入的長句子,在辭典中選擇乙個粒度最大的分詞集合。
為了解決上面的第二個缺點,我們引入了乙個單字索引,對資料做全切分,每個單字建立索引,由於漢字的數量有限,所以增加的擴充套件詞庫不會非常大。
分詞的乙個總的原則就是:使用者輸入的分詞粒度要盡量大,後台索引分詞粒度要盡量小。
django 全文搜尋引擎
全文檢索框架 pip install django haystack 全文檢索引擎 pip install whoosh 中文分詞框架 pip install jieba heystack一些配置都是固定寫好的,需要注意下 在終端執行,提示是否要刪除原有資訊,輸入y python manage.py...
搜尋引擎檢索技術
謝海勸 如此簡單的乙個輸入框 搜尋按鈕,卻可以實現如此神奇的一站式搜尋服務,為使用者提供豐富 準確的資訊,這要歸功於乙個強勁的後台引擎。使用者可曾想過,這麼簡單的行為,後台引擎可能會有成千上萬臺機器在為你服務。搜尋引擎就像一台高效運轉的發動機,不停響應使用者的請求,輸出使用者想要的資訊。高效的檢索系...
搜尋引擎檢索技術
如此簡單的乙個輸入框 搜尋按鈕,卻可以實現如此神奇的一站式搜尋服務,為使用者提供豐富 準確的資訊,這要歸功於乙個強勁的後台引擎。使用者可曾想過,這麼簡單的行為,後台引擎可能會有成千上萬臺機器在為你服務。搜尋引擎就像一台高效運轉的發動機,不停響應使用者的請求,輸出使用者想要的資訊。高效的檢索系統需要提...