《自制搜尋引擎》筆記(2)-迷你全文檢索引擎Wiser-專案概述
阿新 • • 發佈:2019-02-10
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.使用者介面
使用命令列介面:
介面截圖:構建索引
介面截圖:搜尋結果列表
(檢索關鍵詞為:“計算機”,按照文件得分降序排列)