文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SQL Server的全文搜索功能怎么用

2023-06-30 15:17

关注

本文小编为大家详细介绍“SQL Server的全文搜索功能怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“SQL Server的全文搜索功能怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一、使用SQL Server全文搜索配置

要使用SQL Server的全文搜索服务,需要进行如下配置。

1、开启全文搜索服务:

SQL Server的全文搜索功能怎么用

2、开启数据库的全文索引功能:

--开启数据库的全文搜索功能EXEC sp_fulltext_database 'enable';

3、创建全文索引目录:

--创建全文索引目录CREATE FULLTEXT CATALOG IndexCatalog     ON FILEGROUP [PRIMARY]     IN PATH 'E:\SQLServerIndex'     AS DEFAULT

4、创建唯一索引:

--创建唯一索引CREATE UNIQUE NONCLUSTERED INDEX IndexContent ON Article(ArticleContent ASC)

5、创建全文索引:

--创建全文索引CREATE FULLTEXT INDEX ON Article  (ArticleContent)  KEY INDEX IndexContent ON IndexCatalog    --IndexContent是唯一索引名

二、使用全文搜索

CONTAINS搜索方式

1.简单词搜索

- 搜索一个或多个特定的词或短语。词可以包括一个或多个字符,中间没有空格或标点。短语可以由空格分隔的多个词组成,但词之间可以有标点也可以没标点:

--搜索文章内容含有张三或者李四的记录  SELECT * FROM Article WHERE CONTAINS(ArticleContent,'"张三" OR "李四"')
2.前缀词搜索的方式

- 搜索指定文本开头的词或短语,前缀词的搜索方式主要是用在搜索英文中,例如搜索以“do”开头的单词,则可以将doctor、document、download等单词都搜索出来。

--搜索文章内容中含有以'认'开始的词的记录  SELECT * FROM Article WHERE CONTAINS(ArticleContent,'"认*"')    --认为,认识
3.加权词搜索的方式

- 给多个搜索条件加上权值,加权值越高的记录排在越前面,当以多个字符串作为搜索条件搜索记录时,可以为不同的字符串加上一个加权值,这个加权值是介于0和1之间的数值,加权值越高的记录排在越前面。事实上在该SELECT语句的返回结果集里,并没有按加权值的大小来排序,因为WEIGHT不影响CONTAINS查询的结果,只会影响CONTAINSTABLE查询中的排序:

--在CONTAINS搜索中,权重并不影响排序  SELECT * FROM Article  WHERE CONTAINS(ArticleContent,'ISABOUT ("北京" weight(0.9),"上海"  weight(0.6),"广州"  weight(0.5))')
4.邻近词搜索的方式

- 可以搜索与另一个词或短语相邻近的词或短语:

--搜索文章内容中第二个词在第一个词附近的记录  SELECT * FROM Article WHERE CONTAINS(ArticleContent,'"张三" NEAR "李四"')

FREETEXT搜索方式

FREETEXT搜索方式与CONTAINS搜索方式相比,其搜索结果表现都十分不精确,因为FREETEXT的搜索方式是将一个句子中的每个单字拆分开进行搜索的。使用CONTAINS搜索方式搜索条件为“教育部”的记录,那么搜索出来的将是记录里包含“教育部”三个字符串的记录。

--搜索文章内容中包含'程'字和'社'字的记录  SELECT * FROM Article WHERE FREETEXT(ArticleContent,'程社')

CONTAINSTABLE搜索方式

1、CONTAINSTABLE基本搜索:
--CONTAINSTABLE搜索文章内容中含有友谊的记录  SELECT * FROM CONTAINSTABLE(Article,ArticleContent,'友谊') as table1

留意到返回中指包含了两个字段:

SQL Server的全文搜索功能怎么用

其实就是CONTAINSTABLE表中的数据。

2、CONTAINSTABLE返回所需列:
--CONTAINSTABLE搜索返回所需列  SELECT * FROM Article JOIN    CONTAINSTABLE(Article,ArticleContent,'"环境"',2) as table1    ON Article.ArticleContent = table1.[KEY]  ORDER BY table1.RANK DESC

SQL Server的全文搜索功能怎么用

3、CONSTAINSTABLE按符合条件排序
--按符合条件排序  SELECT * FROM Article JOIN      CONTAINSTABLE(Article,ArticleContent,' "泰国" NEAR "高铁" ',10) as table1      ON Article.ArticleContent = table1.[KEY]   ORDER BY table1.RANK DESC

看到查询结果的确按符合条件进行了排序:

SQL Server的全文搜索功能怎么用

4、CONSTAINSTABLE按按权值排序
--权重值排序  SELECT * FROM Article JOIN  CONTAINSTABLE(Article,ArticleContent,  'ISABOUT ("泰国" weight(0.9),  "高铁"  weight(0.6),  "环境"  weight(0.1))') AS TABLE1  ON Article.ArticleContent = TABLE1.[KEY]  ORDER BY TABLE1.RANK DESC

结果按照权重值排序:

SQL Server的全文搜索功能怎么用

使用FREETEXTTABLE搜索

单个字搜索,但是多了参数可供使用:语法如下:

FREETEXTTABLE (table , { column_name | (column_list) | * }  , 'freetext_string'  [ ,LANGUAGE language_term ]  [ ,top_n_by_rank ] )

示例:

SQL Server的全文搜索功能怎么用

搜索image字段

在SQL Server 2005的image类型的字段里,不仅仅是可以存储图形文件,还可以存储如可执行文件、音乐文件、文本文件等众多文件类型。SQL Server 2005支持对存储在image类型的字段里的一些文件的内容进行全文搜索,但在创建全文索引时必须指明存储在image字段里的文件的类型。

SQL Server 2005支持对存储在image中的纯文本文件、网页文件、Word文件、Excel文件和PowerPoint文件的内容进行查询,其扩展名字段必须分别为txt、htm、doc、xls和ppt。全文索引创建完毕后,对image字段里的文件内容进行查询的方法与其他字段的查询方法是一样的:

SELECT 编号,标题,文件,扩展名 FROM 文章 WHERE CONTAINS(文件,'数据库')

三、小结与评价

下面给出这个SQL Server全文搜索的常用SQL语句:

--开启数据库的全文搜索功能:EXEC sp_fulltext_database 'enable'; --数据库启用全文索引--关闭数据库的全文搜索功能:EXEC sp_fulltext_database 'disable'; --数据库禁用全文索引--如果你忘记了全文索引的目录、表、列创建过全文索引EXEC sp_help_fulltext_catalogs    --全文索引目录EXEC sp_help_fulltext_columns    --全文索引列EXEC sp_help_fulltext_tables    --全文索引表

读到这里,这篇“SQL Server的全文搜索功能怎么用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯