sql server 全文搜索(全文索引)

参考:

https://www.cnblogs.com/chenmh/p/4434890.html

https://www.cnblogs.com/lyhabc/p/3255960.html

按照链接方式创建全文索引

使用:

全文谓词

全文查询使用全文谓词(CONTAINS 和 FREETEXT)以及全文函数(CONTAINSTABLE 和 FREETEXTTABLE)。它们支持复杂的 Transact-SQL 语法,这种语法支持各种形式的查询词。若要编写全文查询,必须了解何时以及如何使用这些谓词和函数。

CONTAINS 谓词可以搜索:

    • 词或短语。
    • 词或短语的前缀。
    • 与另一个词相邻的词。
    • 由另一个词的词形变化而生成的词(例如,drive 一词是 drives、drove、driving 和 driven 词形变化的词干)。
    • 使用同义词库确定的另一个词的同义词(例如,metal 一词可能有 aluminum 和 steel 等同义词)。

sql server 全文检索有两种搜索方式,一种是contains,另一种是freetext。前者是包含,类似于like '%关键词%',后者则是将一段文字分词以后对每个词进行搜索:freetext(字段,'词一词二')。

SELECT * FROM dbo.Books
WHERE FREETEXT(Name,'缩印辞海')

根据查找结果的相似度排序

SELECT Name,ID FROM dbo.Books a
inner join FREETEXTTABLE()(dbo.Books, Name,'缩印辞海',10) as b
ON a.ID=b.[key]
order by b.RANK DESC

  

 

posted @ 2018-03-09 17:28  caolingyi  阅读(391)  评论(0编辑  收藏  举报