2011-04-22 148 views
2

我在这里的原因是SQL 2005全文搜索。全文搜索搜索问题

我与此查询在这里寻找:

declare @SearchText nvarchar(1000) 
set @SearchText='Dream'; 

SELECT *   
FROM    
    MashupSearchLookup AS FT_MyTable WITH (NOLOCK)    
    INNER JOIN FREETEXTTABLE(MyTable, *, @SearchText) AS KEY_TBL   
    ON FT_MyTable.ID = KEY_TBL.[KEY] 

当我搜索football话,就说明3行这是很好的,但是当我搜索football则没有记录返回。对我来说,它正在寻找匹配确切的案例。

有什么我可以做的,以得到football的结果吗?

感谢

回答

1

以搜索与foot盯着的话,可以使用:

SELECT * 
FROM MashupSearchLookup 
WHERE CONTAINS(*, '"foot*"') 

SQL ServerFULLTEXT查询无法比拟的后缀或缀(即你不能搜索"*ball""*otba*")。

你可以做搜索这一点,最好是使用LIKE

SELECT * 
FROM MashupSearchLookup 
WHERE col1 LIKE '%ball%' 
     OR col2 LIKE '%ball%' 

+0

感谢您的回复,我有现在二人的问题,如果用户输入什么“脚球”,然后我做必须通过这个像脚或球?第二件事是使用RANK的m这就是为什么即时通讯使用FREETEXTTABLE – user720368 2011-04-22 11:47:11

+1

@user:查询“'”脚“或”球“”(或''“脚* *”或“球*”''你想匹配前缀)。如果你需要'RANK',你可以使用'CONTAINSTABLE'而不是'CONTAINS'。 – Quassnoi 2011-04-22 11:51:23