1. 程式人生 > >《自制搜尋引擎》筆記(2)-迷你全文檢索引擎Wiser-專案概述

《自制搜尋引擎》筆記(2)-迷你全文檢索引擎Wiser-專案概述

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.使用者介面

使用命令列介面:


介面截圖:構建索引


介面截圖:搜尋結果列表

(檢索關鍵詞為:“計算機”,按照文件得分降序排列)

隨書原始碼下載