手机版

SQLSERVER 2008数据库中的全文检索、全文索引和查询概念

时间:2021-08-05 来源:互联网 编辑:宝哥软件园 浏览:

类型:数据库类大小:594KB语言:中文评分:7.7标签:下载最近全文搜索的内容。谷歌搜索了全文搜索,发现了一些问题。现在,我们总结以下:全文索引和查询概念(来自SQL在线帮助)。SQL Server 2008为应用程序和用户提供了对SQL Server表中基于字符的数据发出全文查询的功能。在给定的表上运行全文查询之前,数据库管理员必须在表上创建全文索引。全文索引在表中包含一个或多个基于字符的列。列可以具有以下任何数据类型:char、varchar、nchar、nvarchar、text、ntext、image、xml、varbinary或varbinary(max)。每个全文索引在基表的一列或多列上创建一个索引,并且每列可以有一种特定的语言。自SQL Server 2008以来,全文搜索支持50多种不同的语言,如英语、西班牙语、汉语、日语、阿拉伯语、孟加拉语和印地语。有关支持的全文语言的完整列表,请参见sys . full text _ languages(transact-SQL)。

对于每种受支持的语言,SQL Server都提供特定于语言的语言组件,包括断词器和词干分析器以及一个空的同义词库文件。对于每种全文语言,SQL Server还提供了一个文件(“同义词库文件”),您可以在其中有选择地定义特定于语言的同义词,以扩展搜索查询的范围。此外,系统非索引字表是从SQL Server 2008提供的。为了支持特定的语言或业务应用场景,您可以通过添加和删除停用词(也称为干扰词)来更改系统停用词列表,并且可以根据需要创建其他停用词列表。

SQL Server为编写全文查询提供了一组全文谓词(CONTAINS和FREETEXT)和行集值函数(CONTAINSTABLE和FREETEXTTABLE)。使用这些全文谓词和行集值函数,应用程序和用户可以执行各种类型的全文搜索,例如搜索单个单词或短语(并且可以选择对结果集进行排序),搜索与其他单词或短语相近的单词或短语,或者搜索特定单词的同义词。

全文索引、查询和同步的主要设计要求是所有为全文检索注册的表都有一个唯一的全文键列(或单列主键)。全文索引跟踪使用的重要单词及其位置。

全文查询根据特定语言(例如,英语或日语)的规则对单词和短语进行操作,从而对全文索引中的文本数据执行语言搜索。全文查询可以包括简单的单词和短语,或者多种形式的单词或短语。

全文搜索适用于各种业务应用场景:例如,电子商务(在网站上搜索项目)、律师事务所(在法律数据库中搜索案例记录)或人力资源部门(从存储的简历中查找与职位描述匹配的简历)。无论是什么样的业务应用场景,全文搜索的基本管理任务和开发任务都是一样的。但是,在给定的业务应用程序场景中,可以优化全文索引和查询来满足业务目标。例如,对于电子商务,最大化性能可能比排序结果、检索准确性(全文查询实际返回多少个现有匹配)或支持多种语言更重要。对于律师事务所来说,首先要考虑的是返回所有可能的匹配(“全部返回”信息)。

例如,假设您在DevTools表上有一个全文索引。全文索引可能指示在“摘要”列的第423个和第982个单词处找到了单词Microsoft,并且该行与ProductID6相关联。这种索引结构支持对包含索引词的所有项目的高效检索,以及高级检索操作,例如短语检索和邻近检索。为了防止全文索引因包含许多对检索没有帮助的单词而变得臃肿,会忽略额外的单词,如、和、is或。例如,指定“productorderiduringtesssummermonths”与指定“productorderiduringtsummermonths”相同。将返回包含这两个字符串的行。多种语言的干扰词列表在目录\ Mssql \ Ftdata \ Sqlserver \ Config下提供。安装支持全文搜索的MicrosoftregSQLServer将创建该目录并同时安装干扰词文件。可以编辑干扰词文件。例如,高科技公司的系统管理员可以将计算机这个词添加到他们的干扰词汇中。(如果编辑干扰词文件,则必须重新填充全文目录,更改才会生效。)下表显示了干扰词文件及其对应的语言。噪音。CHS简体中文Noise.cht繁体中文Noise.dat语言中性Noise.deu德语noise . eng eng eng(英国)Noise.enu English(美国)Noise.esn西班牙语noise E.jpn日语Noise.kor韩语Noise.nld荷兰语Noise.sve瑞典语在处理全文查询时,搜索引擎会将符合搜索条件的行的键值返回给MicrosoftSQLServer。例如,有一个SciFi表,其中Book_No列是主键列。book _ nowriteritle-a 025 asimofoundation ' sedgea 027 asimofoundation and mpirec 011 larkechildhood ' sendv 109 Verne mysteriosland假设您希望使用全文查询来查找包含“Foundation”一词的书名。在本例中,值A025和A027将从全文索引中获得。然后,SQLServer用这些键值和其他列信息来响应查询。下表显示了存储全文索引数据的语言。这些语言基于在安装SQLServer期间选择的Unicode排序规则区域设置标识符。用于全文数据存储的Unicode排序规则区域设置标识符语言-汉语拼音符号Icode English(美国)德语德语德语电话簿德语意大利语日语日语Unicode日语韩语Unicode韩语西班牙语(现代)西班牙语瑞典语/芬兰语瑞典语不在此列表中的所有其他Unicode排序规则区域设置标识符值都映射到使用空格分隔单词的中性语言单词的断字符和词干分隔符。解释Unicode排序规则区域标识符设置用于所有可以全文索引的数据类型(如char、nchar等)。).如果为char、varchar或text类型的列的排序顺序设置的语言类型不是Unicode排序规则区域标识符语言,则在对char、varchar和text类型的列进行全文索引和查询时,仍将使用Unicode排序规则区域标识符值。

版权声明:SQLSERVER 2008数据库中的全文检索、全文索引和查询概念是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。