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。

提示说得比较清楚了,楼主如果多实验一步,看看syslanguages表的内容可能就能解决问题了
针对你这个提示的解决方法是把脚本里“English”改成“Simplified Chinese”
select * from syslanguages
楼主最好看一看,就明白为什么那么改了。追问

我试了还是不行哇!按你说的改了之后,当我输入中文的全名时才会搜到商品,比如我要搜,《笑傲江湖》当我输入“笑傲”两个字时就搜不到,是不是因为没有分词啊?

追答

全文搜索功能还是比较弱的,跟分词还是有很大关系的,”笑傲“可能并不认为是一个完整的词语,所以就搜不出来了

参考技术A 将默认数据库的语言改成中文简体看看!

以上是关于SQL SERVER 2008 R2 前提:建立了全文索引的主要内容,如果未能解决你的问题,请参考以下文章

windows server 2012 + sql server 2008 r2安装

如何硬盘安装windows server 2008 r2

talend 与 sql server 2008 R2 的连接问题

使用 sql server 2008 R2 的远程过程调用失败

虚拟机windows server2008r2怎么激活

连接SQL SERVER 2008 R2显示超时间已到.在操作完成之前超时间已过或服务器未响应