Sql-Server

SQL Server 2005:多語言表上的全文搜尋

  • September 14, 2012

我有一個文章表如下。

+-----------+--------------+---------+
| uid       | int          | PRIMARY |
| articleId | int          | UNIQUE  |
| lang      | varchar(2)   | UNIQUE  |
| title     | varchar(500) |         |
| body      | varchar(max) |         |
+-----------+--------------+---------+

我想對文章標題和正文實現全文搜尋。複雜之處在於標題和正文可以是六種語言中的一種,由“lang”列表示。

我看到有幾種語言的雜訊詞文件,所以根據目前設置的語言,我想在搜尋時使用適當的雜訊文件。

這是否需要每種語言一個目錄?如果使用單獨的目錄,是否可以在英文目錄中不包括法語文章?

創建索引時,可以指定“語言”參數。“LANGUAGE”參數的描述如下:

對於包含多種語言文本數據的非 BLOB 和非 XML 列,或者對於儲存在列中的文本語言未知的情況,請使用中性 (0x0) 語言資源。

然後,在使用FREETEXTFREETEXTTABLE進行搜尋時,再次使用“LANGUAGE”參數。Microsoft 將“LANGUAGE”參數定義如下:

是一種語言,其資源將作為 FREETEXT 查詢的一部分用於分詞、詞幹提取、同義詞庫和雜訊詞刪除。此參數是可選的,可以指定為與語言的區域設置標識符 (LCID) 對應的字元串、整數或十六進制值。如果指定了language_term,則它所代表的語言將應用於搜尋條件的所有元素。如果未指定值,則使用列全文語言。

因此,我將使用中性語言資源在多語言表上使用一個目錄一個索引。然後我將**在搜尋時使用適當的語言設置,**以便正確解析所有內容。

引用自:https://dba.stackexchange.com/questions/22446