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