加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server全文搜索如何配置

发布时间:2024-01-01 17:46:00 所属栏目:MsSql教程 来源:DaWei
导读: 关于“SQL Server全文搜索如何配置及使用”的知识有一些人不是很理解,对此小编给大家总结了相关内容,具有一定的参考借鉴价值,而且易于学习与理解,希望能对大家有所帮助,有这
关于“SQL Server全文搜索如何配置及使用”的知识有一些人不是很理解,对此小编给大家总结了相关内容,具有一定的参考借鉴价值,而且易于学习与理解,希望能对大家有所帮助,有这个方面学习需要的朋友就继续往下看吧。

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

1、开启全文搜索服务:
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搜索方式搜索条件为“教育部”的记录,那么搜索出来的将是记录里包含“教育部”三个字符串的记录。

三、小结与评价
下面给出这个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全文搜索如何配置及使用”的内容就介绍到这里了,感谢大家的阅读。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章