搜索技术服务 - 归一搜索引擎技术白皮书
搜索
在线用户
41人在线 (5人在浏览搜索技术服务)

会员: 0
游客: 41

更多...
积分排行榜
1 soker 5
2 ooloo 1
3 qq007 1
4 aple 0
5 andyhwa 0
6 kang 0
7 wxdmini123 0
8 zhixia 0
9 jiankun 0
10 grennwhite 0
搜索技术服务 :: 网络数据采集服务

归一搜索引擎技术白皮书


本文概要描述归一搜索系统所使用的技术背景、系统架构、性能测试、功能特性,以及我们所能提供的技术服务。另外,我们还初步比较了归一搜索系统与开源全文检索系统lucene的相关特点。
文件下载:归一搜索引擎技术白皮书-0.8.pdf

归一搜索引擎技术白皮书-1.0.pdf



归一搜索引擎技术白皮书
2009-3-14



目录
1. 应用背景 3
2. 系统架构 3
2.1.总体架构 3
2.2.架构特点 6
3. 系统组成 7
4. 系统功能 8
5. 背景技术 9
6. 系统测试 10
7. 系统对比 10
8. 技术服务 11
9. 技术解释 11

摘要
本文概要描述归一搜索系统所使用的技术背景、系统架构、性能测试、功能特性,以及我们所能提供的技术服务。另外,我们还初步比较了归一搜索系统与开源全文检索系统lucene的相关特点。



1. 应用背景
网页搜索
与通用网页采集系统等配合,可构建网页搜索引擎。
行业搜索
游戏、财经、医药等行业搜索引擎。
垂直搜索
结构化数据搜索引擎,比如:电子商务搜索、购物搜索、视频搜索、分类信息搜索、旅游搜索、生活搜索等。
网站内搜索
数据库搜索优化、提高全文检索速度等。
2. 系统架构
本节从系统全局出发,描述归一搜索系统的结构,介绍各组成部分及其功能。归一搜索系统的输入是需要建立索引,并提供搜索的数据;它们是来自于外部系统,包括:网站数据库、spider采集到数据网页等。数据进入系统经过处理,就可以提供搜索服务。
2.1.总体架构
从系统流程上,归一搜索系统可以划分成三大集群系统,即数据适配器、后台数据管理系统、前端数据服务系统。以下简要描述这三大集群的架构以及主要功能。
2.1.1.数据适配器
负责解析以及转化成内部系统可识别的数据格式,供后台管理系统使用。外部数据源的格式包括:网页(xml、html、htm等)、文档(pdf、word、ps、xls等)、格式化数据(sqlserver、mysql等数据库记录)。这些数据通过适配器转换成后台管理系统可识别的xml文档,其中常用标识:title、content、url、keyword、updatetime等。下面是xml格式的例子:

<?xml version="1.0" encoding="gbk" ?> <doc>  <title>搜索技术服务</title> <content>搜索技术服务,是归一搜索引擎的唯一目标。</content> <url>http://www.sokerspace.com</url> <keyword>搜索技术服务</keyword> <updatetime>1232392903</updatetime> </doc>


2.1.2.后台管理系统
负责数据管理、调度,对数据进行分词、排重、索引、摘要等加工,并将生成的索引以及摘要库,推送到前端系统提供服务。后台管理是整个搜索引擎系统的“大脑”,它决定哪个加工处理在什么时候进行,决定整个系统总体运行效率,也是运营管理人员监控系统运行状态的主要手段。
后台管理是一个分布式管理系统。它可以分为三层共十多个子系统,下面简要描述一下各子系统的功能,以及后台管理的层次架构。
分布式数据存储层
归一搜索的存储系统是从大规模网页搜索存储系统的架构演变而来,可以随着数据量的增加而扩充存储服务器的机器数量,支持类似google文件系统类似冗余备份以应对不可恢复数据损坏,支持数据增量追加和标志删除以提高读写速度,支持文件单独管理。存储系统单磁盘IO速度可达到硬件最高性能,整个系统具有较高的并发访问速度。
存储数据主要包括两大类,文档库以及由数据加工而产生的信息库,比如:分词结果文件库、特征库、URL库等。
数据管理系统层
数据管理系统主要包括:数据存储管理、系统流程控制、系统监控。
数据存储管理负责数据导入、更新、删除,是归一搜索引擎与外部数据系统的接口。
流程控制系统负责协调各加工处理单元按逻辑顺序运行。通常情况下,处理单元的顺序是:分词、特征提取、排重、分类、索引、摘要、快照。
系统监控系统负责监控以各加工子系统的状态,统计各阶段数据处理数量。
数据加工处理层
数据加工层是系统应用层,主要目标是生成各种用于前端服务的数据。当前主要加工处理模块包括:分词、特征提取、排重、分类、索引、摘要、快照、数据适配器等,它们是相对独立的处理模块,由数据管理层统一协调各处理单元的逻辑顺序。
归一搜索层次架构图
后台管理系统层次结构如图所示。

2.1.3.前端服务系统
前端服务系统负责提供搜索服务,响应用户查询请求。主要包括:摘要、检索、快照等三个基础服务系统,还有拼音纠错、相关搜索等辅助服务系统。这些系统是由proxy系统统一调度串联成整体,采用分布式服务架构,具有较强的扩展性以及容错处理。
下面是前端分布式数据服务系统架构图。另外,检索系统中一些重要技术细节模块,如:用户查询意图识别、分词处理、相关度计算、结果排序等,在图中就不一一描述了。

2.2.架构特点
 扩展性强
系统采用松散耦合设计,具有较强的扩展性,可以根据不同的数据规模对各集群系统进行扩展,满足相应需求。
 分布并行处理
各集群系统采用分布式设计,数据分布可以平滑扩展,使系统可根据不同的数据规模以及具体硬件情况进行相应分布并行处理。
 垂直专业化
在整个系统中,各数据处理以及服务单元都与行业紧密相结合,针对行业用户的行为习惯,提高专业搜索服务。
 时效性较强
提供即时索引与检索服务,以满足行业时效性数据服务的特性。
 程序效率高
系统是在linux平台下采用C/C++语言、多线程技术实现,具有较高的运行效率。
 服务针对性强
根据用户查询log记录分析用户行为特点,提供相关的专业化服务,包括:相关搜索、拼音纠错、搜索提示等服务。

模块流程图

版本与功能
本节简要描述归一搜索系统内部组成模块的功能。系统有两类模块,其一是系统基础模块,其二是可选模块。只有专业版本的搜索引擎才有可选模块的功能。
模块名称 功能说明 基础版 专业版 备注
数据适配器 转化数据格式,方便内部系统使用。 支持 支持
分词系统 实现多粒度中文分词功能。 支持 支持
索引处理 提供增量、即时建立系统功能。 支持 支持
摘要处理 根据文档及其分词结果,生成相关数据,供摘要系统使用。 支持 支持
检索服务 根据搜索词,检索出相关文档。 支持 支持
摘要服务 根据搜索词,动态摘出相关文本概要。 支持 支持
检索代理服务 搜索系统入口,负责调度检索、摘要、快照、意图识别、拼音纠错等模块协同工作。 支持 支持
排重系统 根据文档内容排重,算出相似文档。 支持 支持
相关搜索 根据用户输入搜索串,向用户推荐相关搜索串。 不支持 支持
拼音纠错 根据用户输入拼音,猜测拼音对应可能词汇。 不支持 支持
快照系统 提供呈现文档原内容的接口。 不支持 支持
Cache系统 根据搜索引擎相关规律,利用缓存减少计算以及硬盘IO量,提供系统性能。 不支持 支持
3. 系统组成
以下是归一搜索的主要模块,以及模块之间的交互图。
数据适配器
负责将数据从数据库中导出,并转存成xml文档。
分布式存储系统
负责大数据规模数据存储,提供并行处理效率。
后台管理系统
负责管理、监控数据加工以及服务。
分词系统
索引系统
摘要系统
检索代理
检索代理根据用户搜索请求,分别调用索引系统、摘要系统、拼音纠错、相关搜索等,最后响应用户请求。
拼音纠错
根据用户输入搜索词或者拼音串,提示可能的其它搜索串。
相关搜索
提供类似于百度、google等搜索引擎的相关搜索功能。


4. 系统功能
归一搜索系统的特点是简单、实用、分布式、可扩展性强,具备处理10亿级规模数据能力,具备类似百度、google等通用网页搜索的功能;相对于lucene等开源系统而言,归一搜索除性能具有绝对优势外,更胜于技术细节,尤其是相关性排序算法不断优化升级。
功能特性 基础版 专业版 备注
按字段搜索 支持 支持 索引多个字段时
按分类搜索 支持 支持 按数据分类检索
短语、词组搜索 支持 支持
多条件组合搜索 支持 支持
词典扩展 支持 支持 行业词典扩展
拼音搜索 支持 支持
实时搜索 支持 支持 支持1分钟内即可检索出结果
相关搜索 支持 支持 推荐与查询词相关的搜索串
人工影响排序 不支持 支持 排序结果可通过人工调节
拼音纠错 不支持 支持
扩展搜索 不支持 支持 同义词、相关词扩展
网页排重 不支持 支持 内容相同网页,只保留一个
网页快照 不支持 支持

5. 背景技术
归一搜索系统是从通用网页搜索演化而来,系统架构是以网页搜索的强度来设计,可以支持10亿级以上网页,每天能支持搜索请求量可达千万级。另外,系统也不断引入机器学习和数据挖掘方面的成果,提供更多的实用功能,比如:分类搜索、相关搜索、拼音纠错、搜索意图识别等。当前,搜索技术应用日益广泛,搜索功能已经是建设网站的基本功能,是行业网站成功与否的重要因素。为了解决网站的搜索请求量大、响应速度慢、相关性排序差、搜索相关功能少等问题,我们在现有基础上,将网页搜索引擎技术进行垂直化、产品化改造,提供专业的站内搜索以及垂直行业搜索。
柔性接口技术
采用xml格式描述数据,尽最大可能支持多种数据格式。
相关性算法
相关性排序算法是搜索引擎的重中之重,也是我们多年研究目标,现在研究相关性,以后还会继续这方面的研究。唯有如此,我们才能为客户提供优质的搜索结果体验。归一搜索引擎的相关性算法是我们吸取多家成功互联网公司成功经验基础之上不断研究改进而来。当前,相关性排序考虑的因素包括:词频、词位置、词邻近权值、词类别、词性、字段权重、网页URL层级、PageRank、网页类别、网页重复量等十多类大因素。
索引与检索
通用网页搜索引擎技术的基础,采用分布式架构,系统可支持10亿级以上网页的索引以及每天千万次检索请求。同时,归一搜索还支持即时索引与检索,支持分类搜索,支持多条件组合查询等垂直搜索引擎功能。
搜索意图识别
利用当前机器学习以及数据挖掘技术,对终端用户搜索进行意图识别。
排重技术
大规模网页搜索引擎系统常用技术,可以直接应用于行业垂直化搜索引擎,减轻数据处理压力,减少搜索结果中相同内容,提高用户搜索体验。
分词技术
根据行业及搜索引擎特点,采用多种粒度分词,可以进一步提高体验。我们提供多种不同中文分词方法,比如:最大正向/逆向匹配、基于统计分词等。
拼音技术
提供智能拼音纠错等功能。
相关搜索技术
巧妙利用当前流行技术,分析搜索日志,挖掘用户搜索意图,推荐搜索相关词,提高用户搜索体验。
cache系统
通用网页搜索必备系统,在系统中通过将计算结果保存于内存和硬盘中,减少计算以及硬盘IO量,提高系统整体性能。
6. 系统测试
本节概要地描述归一搜索系统的性能测试结果。
环境参数 参数值 备注
硬件 Dell 2950服务器一台
5块硬盘(10000rpm 300GB/块)、RAID5盘阵
2GB内存
软件 RedHat Linux AS4
编译 GCC 3.4
文档条目大小 均值:5K(纯文本)
文档数量 1,229,492个游戏网页,包括:新闻、攻略、贴子等。共5,479,288个,5.4G

性能指标 指标值 备注
分词及相关计算 200 * 4.5K=900K纯文本每秒 相关计算包括:特征提取等。
索引 索引结果大小:2.78G
索引时间:20分钟(不包括分词时间)
单CPU消耗:95%
内存占用总量:792M
检索 单词:15次每秒,响应速度1秒以内占95%以上
双词:12次每秒,响应速度1秒以内占95%以上
多词:10次每秒,响应速度1秒以内占95%以上
7. 系统对比
Lucene是较为常用的全文检索系统,下表是lucene与归一搜索系统的简单对比。
常用功能 归一搜索 Lucene 备注
索引 增量索引 支持 支持
多字段索引 支持 支持
混合索引 支持 不支持 混合索引:词不同粒度拆分的索引。如:“北京大学”,在索引时,同时索引:北京大学、北京、大学,称为混合索引。
检索 相关性排序 较好 一般
检索语法 丰富 丰富
即时检索 支持 支持
字段检索 支持 支持
分类检索 支持 不支持
拼音纠错 支持 不支持
相关搜索 支持 不支持
单机性能 索引速度 快 慢
检索速度 快 慢
扩展性 分布式 支持 不支持
数据规模 10亿级 千万级

8. 技术服务
为满足各行业、各企业的数据处理、数据化运营的发展需要,推进搜索引擎技术普及应用,我们提供以下但不限于所列技术服务。
提供搜索引擎托管服务
用户可以根据需要,将数据或者数据源提交到归一搜索引擎,系统将会自动为数据建立索引。用户系统调用搜索引擎接口,实现搜索功能。这种服务方式较为方便、简单,数据管理以及运营都统一由我们实现。
提供搜索引擎技术服务
用户可以根据提供的使用手册,在服务器上建立并运营搜索引擎,我们将提供技术支持。
提供定制开发服务
为了更广泛为用户提供服务,我们可以为具体业务进行定制开发,并共同商议后期运营。
提供试用服务测试
我们可免费为用户提供为期一周的服务测试。
9. 技术解释
联系人: 钟先生
MSN: coolzhh at hotmail dot com Email: coolzhh at gmail dot com


赞助
API: RSS | RDF | ATOM
Copyright© soker & sokerspace