我似乎在Microsoft SQL Server 2005中出現了一個奇怪的錯誤,其中FREETEXT()
搜索儘管排序規則不區分大小寫(Latin1_General_CI_AS
),但有些區分大小寫。Sql Server 2005全文檢索大小寫敏感問題
首先,LIKE
查詢是完全不區分大小寫的,所以
WHERE column LIKE '%word%'
和
WHERE column LIKE '%Word%'
返回相同的結果。
此外,FREETEXT
是逸岸不區分大小寫在一定程度上,例如
WHERE FREETEXT(column, 'Word')
將返回不同的情況下的結果。
但
WHERE FREETEXT(column, 'word')
,同時仍返回不區分大小寫的比賽爲word
,給出了不同的結果集。 或者,像我發現經過一番調查,尋找word
給出了所有的比賽爲word
不同的情況,但尋找Word
給出相同PLUS屈折結果。
或者使用的實際情況下,我找到了一個,尋找marketingleader
返回所有結果包含這個詞的,獨立的情況下,而尋找Marketingleader
將返回那些,而且結果只包含leader
不顯示當搜索小寫時。
有任何人有任何想法,是什麼原因造成這一點,我怎麼能打開屈折/模糊搜索爲小寫的話呢?
任何幫助,將不勝感激。
哦,我才意識到我忘了復位網站上的數據庫模型緩存,所以當我用'Contains'測試它,它實際上還是使用'freetext',所以你確實是正確的。現在 唯一的問題是,'contains'使用'FORMSOF(INFLECTIONAL,「術語」)'的時候只做屈折的搜索,而'FREETEXT'做它每默認(當然,除了怪異的情況下,我遇到了,當然) 。 默認情況下,似乎沒有簡單的方法讓屈折詞和搜索詞搜索工作? – Zenon 2010-01-12 11:50:47
當您使用FORMSOF的屈折和詞庫它比自由文本返回不同的結果? – 2010-01-12 14:58:32
'FORMSOF',無論是屈折或詞庫,不返回比一些術語其中'FREETEXT'做字面匹配其他任何結果... 退一步來說,它可能不是'在FORMSOF' /屈折相關所有,而是與斷詞有些區分的情況相關,即只在第一個字母是大寫字母時才執行。這可能與語言有關嗎?數據庫語言是德語。 嗯,我可以只是大寫的所有搜索字詞的第一個字母編程式,我猜 – Zenon 2010-01-13 09:50:05