我有一個在其列之一上有全文索引的表。該列中的文本可以包含換行符「\ r \ n」,例如,在MS SQL Server中執行全文搜索時忽略換行符
line1\r\nline2
目前我使用下面的SQL搜索
SELECT * FROM SomeTable WHERE CONTAINS(TextValue, '"*line1*"')
其成功匹配
。然而,我的用戶希望能夠輸入
"line1 line2"
作爲一個搜索詞,它也應該匹配成功。換句話說,我希望搜索忽略「\ r」和「\ n」。
我已經試過
SELECT * FROM civ.MetadataFieldValues WHERE CONTAINS(REPLACE(REPLACE(TextValue, CHAR(13), ' '), CHAR(10), ''), '"*line1 line2*"')
但這返回錯誤
Incorrect syntax near '('.
有沒有辦法實現這個使用CONTAINS?
不應該全文搜索忽略默認情況下的「和,the,a等」的換行符,空白和填充詞? – Kritner
不這樣工作。我解析出單詞。 – Paparazzi
將「line1 line2」作爲輸入參數提供給查詢(推測爲proc)? – EastOfJupiter