我在名为 Filecontent 的列上有一个带有全文索引的表。该表有一行内容包含“W 917”。对于上下文,此行上的内容列包含的不仅仅是我要搜索的内容。
我不明白为什么我会得到不同的结果,这取决于我使用的是包含、包含通配符还是自由文本。为什么不带通配符的 CONTAINS 得到结果,而带通配符的 CONTAINS 却没有?
-- Searching for "W 917"
-- No match - CONTAINS with wildcard
SELECT * FROM InvoicePDFContent t1 WHERE CONTAINS(t1.Filecontent, '"W 917*"')
-- Match - CONTAINS
SELECT * FROM InvoicePDFContent t1 WHERE CONTAINS(t1.Filecontent, '"W 917"')
-- Match - FREETEXT
SELECT * FROM InvoicePDFContent t1 WHERE FREETEXT(t1.Filecontent, '"W 917"')
-- Searching for "W"
-- Match - CONTAINS with wildcard
SELECT * FROM InvoicePDFContent t1 WHERE CONTAINS(t1.Filecontent, '"W*"')
-- No match - CONTAINS
SELECT …Run Code Online (Sandbox Code Playgroud)