2009-07-13 61 views
0

確定這是情況..全文搜索(SQL Server 2005中)僅適用於某些領域

我實現全文檢索桌子上,但它僅適用於某些領域..

CREATE FULLTEXT CATALOG [defaultcatalog] 
CREATE UNIQUE INDEX ui_staticid on static(id) 
CREATE FULLTEXT INDEX ON static(title_gr LANGUAGE 19,title_en,description_gr LANGUAGE 19,description_en) KEY INDEX staticid ON [defaultcatalog] WITH CHANGE_TRACKING AUTO 

現在爲什麼下面將帶來的結果

Select * from static where freetext(description_en, N'str')

,這不是(雖然都具有與海峽文字吧..)

Select * from static where freetext(description_gr, N'str')

(我也試了一下沒有語言規範 - 在這種情況下,希臘) (排序規則的數據庫是Greek_CI_AS) BTW

Select * from static where description_gr like N'%str%'

會工作得很好..

所有字段都是nvarchar類型,_gr字段包含英文和希臘文本。(應該沒關係)

所有幫助將不勝感激

回答

0

只是想弄清楚發生了什麼事情:你在這裏用這個查詢得到什麼?

SELECT * FROM static WHERE FREETEXT(*, N'str') 

如果您沒有明確指定要搜索的任何列 - 它會給您預期的結果嗎?

另一點:我認爲你的聲明中有一個錯誤的語言ID。根據SQL Server聯機叢書:

當指定爲字符串, language_term對應於syslanguages別名 列值 系統表。 'language_term'中的字符串必須是用單引號括起來的 ,如 。 當指定 作爲整數時,language_term是 實際的LCID,它標識了 語言。

從我在互聯網上搜索到的信息來看,希臘的LCID是1032 - 而不是19。你可以用1032而不是19來嘗試嗎?這有什麼區別嗎?

馬克

+0

如果我運行命令的同時,我爲每個領域我得到

Full-text table or indexed view has more than one LCID among its full-text indexed columns.
定義的不同的語言,如果我同時所有運行fieldσ採取默認語言它沒有返回..奇怪,是不是在? – 2009-07-13 15:42:25