我們有可能看起來像數據:途徑搜索單個字符後跟一個連字符用跟隨多個文本SQL Server全文搜索
A-10001
A-10002
A-10003
B-10001
B-10002
B-10003
;當我們想找到所有的包含「A-100」的比賽。使用全文搜索,我們正在做的事情,如:
where contains(e.*, '"A-100*"')
然而,由於「 - 」被認爲是一個字打破邊界,並且因爲A是一個干擾詞(因爲它是一個單個字符),查詢不返回任何結果。我想知道是否有任何(簡單)的方式來返回預期的結果。
注意,我明白,在這個簡化的情況下,我可以使用像,而不是包含,是這樣的:
where
(e.myColumn1 like '%A-100%'
or e.myColumn2 like '%A-100%'
or e.myColumn3 like '%A-100%',
etc)
但對於我的情況是行不通的(主要是性能方面的原因,並因爲有很多列,我需要看看)。
我也明白,我就能把搜索字符串轉換成兩個詞,並做一些事情,如:
where
contains(e.*, '"100*"')
and (e.myColumn1 like '%A-100%'
or e.myColumn2 like '%A-100%'
or e.myColumn3 like '%A-100%',
etc)
但同樣,因爲有很多列,這不是一個理想的解決方案。
我感興趣的SQL Server 2005及更高版本的解決方案,但如果有一個SQL Server 2008中具體的解決方案,我很想在這一點。
感謝您的幫助, 埃裏克