全文索引的使用方法(一)

2024-02-27 20:18
文章标签 使用 方法 全文索引

本文主要是介绍全文索引的使用方法(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://blog.csdn.net/HEROWANG/archive/2009/08/11/4436605.aspx


view plaincopy to clipboardprint?
01./*建立测试环境*/ 
02. 
03.if object_id('tb') is not null 
04. 
05.   drop table tb 
06. 
07.go 
08. 
09.create table tb 
10. 
11.(id int identity(1,1), 
12. 
13. title varchar(200),  
14. 
15. detail varchar(1000), 
16. 
17. constraint pk_id primary key(id) –在建立全文索引时需要使用 
18. 
19. ) 
20. 
21.insert into tb 
22. 
23.select '火箭即将签下新秀射手',' 据悉,巴丁格与火箭队的合同谈判是于昨天完成的,巴丁格将得到与泰勒一样的合同。此前媒体曝光泰勒的合同为期四年,总价值万美元,其中前两年为保障性合同。巴丁格预计会在接下来几天内正式宣布签约加盟火箭。'  
24. 
25.union all 
26. 
27.select '韦弗被曝已与希腊豪门签约','据国际篮球网报道,前火箭队球员范-韦弗已经与希腊豪门奥林匹亚科斯队签订了合同。韦弗得到一份为期两年,总价值万美元的合同。' 
28. 
29.union all 
30. 
31.select '马刺豪掷千金为对抗湖人','马刺队在今夏休赛期补充了几员大将,主教练格雷格-波波维奇日前在接受Yahoo!体育采访时透露,马刺队不惜缴纳奢侈税构建豪华阵容就是为了对抗湖人队,争取拿到第五个总冠军。' 
32. 
33.union all 
34. 
35.select '华莱士未曾想过离开汽车城','此前本-华莱士已经同意重返底特律活塞,并且以老将底薪和活塞签下一份年万美元的合同,而据《每日先驱报》专栏作家米克-麦格劳透露,这位当年叱咤NBA赛场的内线防守悍将甚至从来就没有考虑过要离开活塞队。' 
36. 
37.union all 
38. 
39.select '米勒竟好横刀夺爱追求人妻','对于那些没看过雷吉·米勒在步行者创造“米勒时间”的“后”们,应该怎么介绍这位前NBA球星呢?难道从前天洛杉矶马里布海滩上空那架飞机拉的横幅说起?恐怕没有哪位家长愿意这么做。' 
40. 
41.union all 
42. 
43.select '姚明:没把上海当投资项目乐得生意做了好人当了','“姚蜜”说:不缺广告效应的姚明收购濒临绝境的上海东方篮球俱乐部,说明他是真的想为曾经的母队做点事情。' 
44. 
45.union all 
46. 
47.select '火箭不敌奇才终结年纪录','此役姚麦组合状态糟糕,姚明投中得到分个篮板次盖帽,麦迪投中拿下分个篮板次助攻,两人联手竟不如得到分个篮板次助攻次盖帽的贾米森。' 
48. 
49.  
50. 
51.第一步:启用数据库的全文索引 
52. 
53.sp_fulltext_database enable   --启用数据库的全文索引 
54. 
55.go 
56. 
57.第二步:建立全文目录 
58. 
59.create fulltext catalog tb_fulltext   
60. 
61.in path N'D:/Program Files/Microsoft SQL Server2005/MSSQL.1/MSSQL/FTData' 
62. 
63.with accent_sensitivity =on  --区分重音 
64. 
65.authorization dbo;--全文目录的所有者 
66. 
67.第三步:建立全文索引 
68. 
69.create fulltext index on tb 
70. 
71.(title,detail) 
72. 
73.key index pk_id  --指定索引列,为了提高性能,最好使用聚集索引 
74. 
75.on tb_fulltext 
76. 
77.with change_tracking auto  --在关联的表中修改了数据时,自动更新全文索引。 
78. 
79.  
80. 
81.第四步:查询示例: 
82. 
83.select * from tb 
84. 
85.where contains((title,detail),'姚明') 
 
 


查询的语法:
 
1、  搜索特定词:contains(detail,'姚明')
 
2、  搜索特定短语:用““将短语包含在双引号内,contains(detail,'姚明 上海')
 
3、  从多个列中搜索词和短语:contains((title,detail),'姚明 上海')
 
4、搜索以指定文本开头的词或短语:contains(detail,'“姚明*“')
 
如果文本和星号不包含在双引号内,则全文搜索会将星号看做是一个字符。如果搜索的是短语,则该短语内的每个词都被看做是一个前缀。contains(detail,'“姚明 上海*“')则将返回第一个词以姚明开头第二个词以上海开头的结果
 
5、  搜索特定词的变形:contains(detail,'formsof(inflectional,ride)')
 
将返回表中含有ride,rides,riding,ridden的行
 
6、搜索与另一个词或短语临近的词或者短语:contains(detail,'姚明 near 上海')
 
7、使用加权值的词或短语:contains(description,’isabout(performance weight(.8),comfortable weight(.4),smooth weight(.2))’)
 
Weight为每个词或短语指定一个0.0~1.0之间的加权值
 
8、使用多个搜索条件: contains(detail,'”姚明” or “上海”')
 
                     contains(detail,'”姚明” and “上海”')
 
                       contains(detail,'”姚明” and not  “上海”')
 
9、在contains中还可以使用变量
 
10、搜索同义词         contains(title,'formsof(thesaurus,上)')


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/HEROWANG/archive/2009/08/11/4436605.aspx

这篇关于全文索引的使用方法(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/753494

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr