表:用户
...|Name |...|..
__________________________________
...|george walker |...|..
...|... |...|..
现在我想编写一个查询来获取以下输入的上述记录:
george
george walker
george walker bush
等。
即,搜索字符串中的一半单词应匹配但不匹配任何单词
如何为此编写查询?
注意:我想使用Full Text Search
功能,因为此表有几百万条记录。
我怀疑是否可以SOUNDEX
使用Full Text
答案 0 :(得分:0)
假设您有全文索引名称列...
declare @search varchar(1000), @searchquery varchar(1000)
select @search = 'george walker bush' -- your search terms here.
select @search = ltrim(rtrim(@search))
select @searchquery = 'ISABOUT ('
+ replace(@search, ' ', ' WEIGHT (0.4), ')
+ ' WEIGHT (0.4))'
select * from [User]
inner join
Containstable(
[User],
Name,
@searchquery
) as keys
on keys.[key] = [user].id
where rank>50