《自制搜索引擎》筆記(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.用戶界面

使用命令行界面:


界面截圖:構建索引



界面截圖:搜索結果列表

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

隨書源碼下載

中文版源碼:http://www.ituring.com.cn/book/1582,在右側“隨書下載”欄目中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章