当前位置:  开发笔记 > 数据库 > 正文

SQL Server全文搜索

如何解决《SQLServer全文搜索》经验,为你挑选了0个好方法。

我目前正在开发一个应用程序,我们有一个SQL-Server数据库,我需要进行全文搜索工作,以便我们搜索人的名字.

目前,用户可以在名称字段中输入搜索3个不同varchar列的名称.第一,最后,中间名

所以说我有3行以下信息.

1 - 菲利普 - J - 弗莱

2 - 艾米 - 空 - 黄

3 - Leo - NULL - Wong

如果用户输入诸如'Fry'之类的名称,它将返回第1行.但是,如果他们进入Phillip Fry,或者Fr,或者Phil,他们什么也得不到......我不明白为什么这样做.如果他们搜索Wong,他们会获得第2行和第3行,如果他们搜索Amy Wong他们又一无所获.

目前查询使用的是CONTAINSTABLE,但我已使用FREETEXTTABLE,CONTAINS和FREETEXT切换,结果没有任何明显的差异.表格方法是首选,因为它们返回相同的结果,但具有排名.

这是查询.

....
@Name nvarchar(100),
....
--""s added to prevent crash if searching on more then one word.
DECLARE @SearchString varchar(100)
SET @SearchString = '"'+@Name+'"'
SELECT Per.Lastname, Per.Firstname, Per.MiddleName
FROM Person as Per
INNER JOIN CONTAINSTABLE(Person, (LastName, Firstname, MiddleName), @SearchString) 
AS KEYTBL
ON Per.Person_ID = KEYTBL.[KEY]
WHERE KEY_TBL.RANK > 2
ORDER BY KEYTBL.RANK DESC;  
....

有任何想法吗...?为什么这个全文搜索无法正常工作?

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有