Sql-Server
SQL Server 2005:多語言表上的全文搜尋
我有一個文章表如下。
+-----------+--------------+---------+ | uid | int | PRIMARY | | articleId | int | UNIQUE | | lang | varchar(2) | UNIQUE | | title | varchar(500) | | | body | varchar(max) | | +-----------+--------------+---------+
我想對文章標題和正文實現全文搜尋。複雜之處在於標題和正文可以是六種語言中的一種,由“lang”列表示。
我看到有幾種語言的雜訊詞文件,所以根據目前設置的語言,我想在搜尋時使用適當的雜訊文件。
這是否需要每種語言一個目錄?如果使用單獨的目錄,是否可以在英文目錄中不包括法語文章?
創建索引時,可以指定“語言”參數。“LANGUAGE”參數的描述如下:
對於包含多種語言文本數據的非 BLOB 和非 XML 列,或者對於儲存在列中的文本語言未知的情況,請使用中性 (0x0) 語言資源。
然後,在使用FREETEXT或FREETEXTTABLE進行搜尋時,再次使用“LANGUAGE”參數。Microsoft 將“LANGUAGE”參數定義如下:
是一種語言,其資源將作為 FREETEXT 查詢的一部分用於分詞、詞幹提取、同義詞庫和雜訊詞刪除。此參數是可選的,可以指定為與語言的區域設置標識符 (LCID) 對應的字元串、整數或十六進制值。如果指定了language_term,則它所代表的語言將應用於搜尋條件的所有元素。如果未指定值,則使用列全文語言。
因此,我將使用中性語言資源在多語言表上使用一個目錄和一個索引。然後我將**在搜尋時使用適當的語言設置,**以便正確解析所有內容。