《自制搜索引擎》笔记(2)-迷你全文检索引擎Wiser-项目概述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/winx_coder/article/details/76615202

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,在右侧“随书下载”栏目中

猜你喜欢

转载自blog.csdn.net/winx_coder/article/details/76615202