MSDN によると、英語のファイル ( tseng.xml
) をシソーラスにロードするシソーラス ファイルを編集した後にこれを行いました。
EXEC sys.sp_fulltext_load_thesaurus_file 1033;
GO
シソーラス ファイルのミニ サンプル部分
<XML ID="Microsoft Search Thesaurus">
<thesaurus xmlns="x-schema:tsSchema.xml">
<diacritics_sensitive>0</diacritics_sensitive>
<expansion>
<sub>car</sub>
<sub>coche</sub>
<sub>automobile</sub>
<sub>ride</sub>
</expansion>
</thesaurus>
</XML>
インデックス付きの列 c.keywords フィールドは、'bike,car' で構成されています。クエリによるクイック チェック:
DECLARE @strsearch varchar(200)
SET @strsearch = 'automobile'
SELECT adid from ads INNER JOIN campaign c ON ads.campid=c.campaignid
WHERE
FREETEXT(c.keywords, @strsearch)
RESULTS
========
ad NULL
「車」を検索するフリーテキストは機能します
DECLARE @strsearch varchar(200)
SET @strsearch = 'car'
SELECT adid from ads INNER JOIN campaign c ON ads.campid=c.campaignid
WHERE
FREETEXT(c.keywords, @strsearch)
RESULTS
========
ad 41
そのため、シソーラスを使用する FREETEXT は結果を返しません。デフォルトでは、FREETEXT はシソーラス ファイルを使用していると思いました。私は何を間違っていますか?