SQL Server的全文搜索功能怎么用(sql server,开发技术)

时间:2024-05-08 07:16:10 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

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

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

    1、开启全文搜索服务:

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

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

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

    3、创建全文索引目录:

    --创建全文索引目录CREATEFULLTEXTCATALOGIndexCatalogONFILEGROUP[PRIMARY]INPATH'E:\SQLServerIndex'ASDEFAULT

    4、创建唯一索引:

    --创建唯一索引CREATEUNIQUENONCLUSTEREDINDEXIndexContentONArticle(ArticleContentASC)

    5、创建全文索引:

    --创建全文索引CREATEFULLTEXTINDEXONArticle  (ArticleContent)  KEYINDEXIndexContentONIndexCatalog--IndexContent是唯一索引名

    二、使用全文搜索

    CONTAINS搜索方式

    1.简单词搜索

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

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

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

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

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

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

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

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

    FREETEXT搜索方式

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

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

    CONTAINSTABLE搜索方式

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

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

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

    其实就是CONTAINSTABLE表中的数据。

    2、CONTAINSTABLE返回所需列:
    --CONTAINSTABLE搜索返回所需列  SELECT*FROMArticleJOIN    CONTAINSTABLE(Article,ArticleContent,'"环境"',2)astable1    ONArticle.ArticleContent=table1.[KEY]  ORDERBYtable1.RANKDESC

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

    3、CONSTAINSTABLE按符合条件排序
    --按符合条件排序  SELECT*FROMArticleJOIN  CONTAINSTABLE(Article,ArticleContent,'"泰国"NEAR"高铁"',10)astable1  ONArticle.ArticleContent=table1.[KEY]ORDERBYtable1.RANKDESC

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

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

    4、CONSTAINSTABLE按按权值排序
    --权重值排序  SELECT*FROMArticleJOIN  CONTAINSTABLE(Article,ArticleContent,  'ISABOUT("泰国"weight(0.9),  "高铁"weight(0.6),  "环境"weight(0.1))')ASTABLE1  ONArticle.ArticleContent=TABLE1.[KEY]  ORDERBYTABLE1.RANKDESC

    结果按照权重值排序:

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

    使用FREETEXTTABLE搜索

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

    FREETEXTTABLE(table,{column_name|(column_list)|*}  ,'freetext_string'  [,LANGUAGElanguage_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文章WHERECONTAINS(文件,'数据库')

    三、小结与评价

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

    --开启数据库的全文搜索功能:EXECsp_fulltext_database'enable';--数据库启用全文索引--关闭数据库的全文搜索功能:EXECsp_fulltext_database'disable';--数据库禁用全文索引--如果你忘记了全文索引的目录、表、列创建过全文索引EXECsp_help_fulltext_catalogs--全文索引目录EXECsp_help_fulltext_columns--全文索引列EXECsp_help_fulltext_tables--全文索引表
     </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
    本文:SQL Server的全文搜索功能怎么用的详细内容,希望对您有所帮助,信息来源于网络。
    上一篇:vue3.0移动端二次封装van-uploader实现上传图片的方法下一篇:

    13 人围观 / 0 条评论 ↓快速评论↓

    (必须)

    (必须,保密)

    阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18