搜索引擎的主要模块

1、爬虫
网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,它们被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,以获取或更新这些网站的内容和检索方式。从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分。

相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题:
(1) 对抓取目标的描述或定义;
(2) 对网页或数据的分析与过滤;
(3) 对URL的搜索策略。

2、建立索引
倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。倒排索引主要由两个部分组成:“单词词典”和“倒排文件”。

倒排索引有两种不同的反向索引形式:

一条记录的水平反向索引(或者反向档案索引)包含每个引用单词的文档的列表。

一个单词的水平反向索引(或者完全反向索引)又包含每个单词在一个文档中的位置。

后者的形式提供了更多的兼容性(比如短语搜索),但是需要更多的时间和空间来创建。

3、搜索用户界面
随着搜索技术的逐渐走向成熟,搜索界面也有了一个比较固定的模式。除了基本的搜索,我们可能都会涉及到下面这些方面。

输入提示词:当用户在搜索框中输入查询过程中随时给予查询提示词。对于中文来说,当用户输入拼音的时候,也能提示。
相关搜索提示词:当用户对当前的搜索结果不满意时,也许换一个搜索词,就能够得到更有用的信息。一般会根据用户当前搜索词给出多个相关的提示词。可以看成是协同过滤在搜索词上的一个具体应用。
相关文档:返回和搜索结果中的某一个文档类似的文档。

搜索引擎个人项目地址示例:

http://www.qsask.com/search
个人开发全网搜索引擎项目

相关文章: