小编Mår*_*und的帖子

无法理解全文结果的差异 - 包含、包含通配符、自由文本

我在名为 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)

sql-server full-text-search sql-server-2008-r2

2
推荐指数
1
解决办法
148
查看次数