我使用CONTAINSTABLE
來搜索兩個表列。一旦搜索結果中包含像'''這樣的小字詞,即使它們實際存在於列中,搜索也不會返回結果。CONTAINSTABLE查詢不識別小字
快速示例。正在搜索的列包含文本。 「系統需要升級」
下面的SQL返回0行
SELECT * FROM Incident WHERE (TicketNumber IN (
SELECT TicketNumber FROM [Action] FT_TBL INNER JOIN
CONTAINSTABLE(Action, Text, '"system" AND "needs" AND "to" AND "upgraded" AND NOT "Search Summary"') KEY_TBL ON FT_TBL.ID = KEY_TBL.[KEY]
UNION
SELECT TicketNumber FROM [Incident] FT_TBL INNER JOIN
CONTAINSTABLE(Incident, Subject, '"system" AND "needs" AND "to" AND "upgraded"') AS KEY_TBL ON FT_TBL.TicketNumber = KEY_TBL.[KEY]))
一旦「到」忽略它工作正常:
SELECT * FROM Incident WHERE (TicketNumber IN (
SELECT TicketNumber FROM [Action] FT_TBL INNER JOIN
CONTAINSTABLE(Action, Text, '"system" AND "needs" AND "upgraded" AND NOT "Search Summary"') KEY_TBL ON FT_TBL.ID = KEY_TBL.[KEY]
UNION
SELECT TicketNumber FROM [Incident] FT_TBL INNER JOIN
CONTAINSTABLE(Incident, Subject, '"system" AND "needs" AND "upgraded"') AS KEY_TBL ON FT_TBL.TicketNumber = KEY_TBL.[KEY]))
如何CONTAINSTABLE
與這些小詞連用,還是應該把它們全部放在一起?如果這些較小的單詞在搜索中實際上是有意義的,那麼它們又如何被納入搜索?
什麼版本的SQL Server? – 2010-09-29 13:02:24
https://technet.microsoft.com/zh-cn/library/ms187914(v=sql.110).aspx – Jodrell 2015-02-04 14:05:12