SQL SERVER 2008 R2 前提:建立了全文索引
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL SERVER 2008 R2 前提:建立了全文索引相关的知识,希望对你有一定的参考价值。
CREATE PROCEDURE SearchWord
(@Word NVARCHAR(50))
AS
SET @Word = '( "' + @Word + '")'
SELECT COALESCE(NameResults.[KEY], DescriptionResults.[KEY]) AS [KEY],
ISNULL(NameResults.Rank, 0) * 3 +
ISNULL(DescriptionResults.Rank, 0) AS Rank
FROM
CONTAINSTABLE(Product, Name, @Word,
LANGUAGE 'English') AS NameResults
FULL OUTER JOIN
CONTAINSTABLE(Product, Description, @Word,
LANGUAGE 'English') AS DescriptionResults
ON NameResults.[KEY] = DescriptionResults.[KEY]
我想实现的是对中文的搜索,可现在还是只能搜索英文。
当我把English改成Chinese,然后去执行该存储过程查询时提示
...未在 syslanguages 中定义为语言别名: Chinese。
针对你这个提示的解决方法是把脚本里“English”改成“Simplified Chinese”
select * from syslanguages
楼主最好看一看,就明白为什么那么改了。追问
我试了还是不行哇!按你说的改了之后,当我输入中文的全名时才会搜到商品,比如我要搜,《笑傲江湖》当我输入“笑傲”两个字时就搜不到,是不是因为没有分词啊?
追答全文搜索功能还是比较弱的,跟分词还是有很大关系的,”笑傲“可能并不认为是一个完整的词语,所以就搜不出来了
参考技术A 将默认数据库的语言改成中文简体看看!以上是关于SQL SERVER 2008 R2 前提:建立了全文索引的主要内容,如果未能解决你的问题,请参考以下文章
windows server 2012 + sql server 2008 r2安装
talend 与 sql server 2008 R2 的连接问题