【51CTO.com独家特稿】一、前言
“人类失去搜索,世界将会怎样?”,同样,很难想象一个拥有极大信息量的行业网站门户没有站内全文搜索将会出现怎样的局面,网站全文检索对于挖掘网站信息和整合网站资源的价值是不言而喻的。我们看到,通用型的搜索引擎已经成为了互联网世界的门户,而对于一个信息量极其丰富的网站而言,全网搜索或许会成为本网站的门户,正是所谓的门户之门。
实现网站全文检索有几种常见方案,比如应用数据库全文检索,开源搜索引擎,使用Google API等, 本文我们将就如何使用SQL(SQL Server培训 mySQL培训 ) Server 2005多快好省地建立网站全文检索展开探讨。
二、全文检索技术说明
1、应用背景
先介绍下Z网站,它是国内投融资行业最大的行业门户,网站拥有海量的融资信息、投资信息、招商信息、创业信息、商机信息、资讯信息、产权交易信息、招标投标信息、中标信息、会展信息等投融资行业的信息资源。网站全文检索实现的首要需求就在于能够让用户输入诸如行业关键字后系统能快速返回给符合用户在全范围内查找条件的记录, 从而有效地利用资源,更好地满足用户需求。
2、主要检索技术的区别
有了数据但是没有被使用,那么这些数据不应该被称为信息。它们无非是不断充斥设备和网络的比特而已,但是如何把数据挖掘出来提供给需要的人员,检索技术是其中非常有效的途径之一。
现基于微软平台,针对SQL Server 2005提供的全文检索技术进行介绍。与关系数据查询、多维数据库查询和基于XML的XQuery、XPath不同,全文检索技术主要处理对象是基于超大 数据量的文本数据和结构化的二进制数据上类似LIKE的模糊查询。主要区别见下表。
表1:全文检索与关系数据库查询、多维数据查询、XML查询的对比
关系数据库查询
多维数据查询
XML查询
全文检索
检索技术
SQL
MDX
XQuery、XPath
SQL (extension)
主要处理对象
关系二维数据
结构化多维数据
层次型数据
大容量二维和层次型数据的模糊检索
主要应用领域
一般的OLTP类应用
一般的OLAP类分析型应用
面向Internet、Intranet的松散耦合SOA应用
企业/网站内部信息/知识管理类应用
索引
大量使用非聚簇索引,一般保存在数据库中。
通过层次型、保存中间结果的方式,通过不同的轴向快速定位信息剖面。
基于XPath的索引,索引一般保存在数据库中。
基于关键字的索引,保存在文件系统中。每个表仅支持一个索引。
3、全文检索技术简要介绍
全文检索主要应用领域如下:
(1)大数据量、超大数据量的结构化平文本数据和模糊匹配查找(Char、Varchar、Nvarchar)。
(2)大数据量、超大数据量的层次型XML数据展开后的查找---含模糊查找(Xml type)。
(3)标准格式的二进制非结构化Word数据的查找(VarBinary[max]、Image)。
与其他检索技术不同的是,全文检索不仅仅提供词汇层次的查询支持,而且可以根据语言环境、不同语言的特点,甚至于用户自定义的配置提供不同语义级的大容量的数据模糊匹配检索支持。为了提供语义层次的检索,SQL Server 2005的全文检索明确了如下几个概念:
(1)断字符(Word Breaker):因为对于不同的语言,哪些符号可以用于词汇的分割是不同的,因此全文检索支持不同语言环境的不同断字符。
(2)标记(Token):是由断字符标识的词或字符串。由于划分是基于特定语言完成的,因此也可以做到语义层次的支持。
(3)干扰词(Noise Word):主要是那些经常出现,但是对于检索没有多少帮助的词汇。例如:英语中的“a”、 “and”、 “is”、 “the”,汉语中的“的”、 “不”、 “以”、 “了”等。SQL Server 2005中提供配置文件,允许用户自定义自己语言、甚至与本行业、本企业的检索干扰词。
(4)词干分析器(Stemmer):通过断字符分割后,根据具体的语言和该语言的语法规程生成的特定词汇的变形。 这个即是搜索引擎常提到的分词技术。
(5)同义词:即便是同一个语言,在检索的情况下也存在同义词如何处理的问题。如果一个检索系统不能够识别近义词,而只能识别完全匹配的词汇,那对于我们中文这种表义的语言而言会带来很大不便。同样的,一个行业内部也有很多同义词或者是缩略语。例如如下的词语。
广播行业:“ABC”与“英国ABC广播公司”基本上类似,但是也可能和“澳大利亚广播公司”混淆。
政府行文:“ABC”与南美的“阿根廷、巴西、智利三国”是同义词。
不仅如此,由于日常使用的习惯,我们在口语表达和书面语表达上也有区别,这个也需要预先定义。例如,很多口头常用的技术产品“Win2K”、 “WinXP”等,一般都很正式的称为“Windows 2000”和 “Windows XP”,因此SQL Server 2005上也提供类似词汇替换的支持,而且这些支持也是与具体语言相关的。
4、SQL Server 2005全文检索的技术架构
让我们首先得问自己,什么是全文检索?它是指Microsoft SQL Server 2005 具备针对 Microsoft SQL Server 表中基于纯字符的数据进行全文查询的功能。全文查询可以包括词和短语,或者词或短语的多种形式。
当我们明确了全文检索概念之后,我们来看看它的内部结构。
Microsoft SQL Server 2005 中的全文搜索由 Microsoft Full-Text Engine for SQL Server (MSFTESQL) 服务提供支持。MSFTESQL 服务有两个角色,即索引支持和查询支持。
全文搜索的组件
全文搜索的体系结构由下列组件构成:
◆Microsoft Full-Text Engine for SQL Server (MSFTESQL)
◆Microsoft Full-Text Engine Filter Daemon (MSFTEFD),它包含下列组件:
(1)筛选器
(2)协议处理程序
(3)断字符
共7页: 1 下一页
【内容导航】
第 1 页:全文检索技术说明 第 2 页:SQL Server 2005全文索引的过程 第 3 页:网站全文检索设计 第 4 页:数据库全文检索实现 第 5 页:开发存储过程并把结果集分页 第 6 页:提高的几类信息资源 第 7 页:需求规划
1234567下一页 |