1.基本信息
語言:C語言
平臺:Linux / Mac OS X
數據庫:SQLite
代碼行數:2427行 (不含utHash函數庫,不含空行,含註釋)
外部依賴函數庫:sqllite3;expat
代碼規範程度:註釋比較詳盡,變量、函數名命名規範。
2.文本數據集
Wikipedia Database Dump(中文版),XML格式
3.模塊
3.1構建索引模塊
(1)獲取文檔:通過解析XML文件的方式,讀取文檔
(2)分詞:
對於中文(非英文)字符,使用“bi-gram算法”進行分詞(通用型分詞算法,與具體語言無關,支持中文和英文);
對於英文字符,把連續出現的多個英文字母視爲一個詞元。(對英文單詞的正確分詞,在6-6節實現)
(3)索引構建方法:採用一種經過改造的索引構建方法(對“基於合併的索引構建方法”進行改造)
(4)索引壓縮:可配置,支持配置爲“無壓縮”或“Golomb編碼壓縮”
(5)索引持久化存儲:倒排索引以二進制數據的形式,存儲於數據庫中一個BLOB類型的字段中。
3.2檢索模塊
(1)分詞
(2)索引加載與解壓
(3)布爾檢索:支持“AND檢索”,不支持“OR、NOT檢索”
(4)短語搜索(Phrase Search,又稱爲“詞組搜索”):可配置是否啓用
(5)文檔評分:使用TF-IDF算法
4.用戶界面
使用命令行界面:
界面截圖:構建索引
界面截圖:搜索結果列表
(檢索關鍵詞爲:“計算機”,按照文檔得分降序排列)
隨書源碼下載
中文版源碼:http://www.ituring.com.cn/book/1582,在右側“隨書下載”欄目中