ライセンスが許可されているサード パーティのワード ブレーカーを読み込む方法
SQL Server 2008 R2 には、ライセンス供与されたサード パーティ製のワード ブレーカーが用意されています。対象となる言語は次のとおりです。
デンマーク語
ポーランド語
トルコ語
これらのワード ブレーカーは使用可能ですが、既定ではインストールされず、手動で登録してから、フルテキスト インデックスおよびフルテキスト クエリでサポートされている LCID の一覧に追加する必要があります。これらのワード ブレーカーが既定で有効にならないのは、これらのワード ブレーカーを所有するサード パーティが、既定で有効にするために必要とされるテスト、セキュリティ、および堅牢性のレベルをまだ満たしていないからです。
前提条件
ワード ブレーカーを読み込む前に、次の情報を確認してください。
ワード ブレーカーを登録する SQL Server の各インスタンスのインスタンス名
各インスタンスの FTDATA パス
インスタンス ID を取得した後、適切なインスタンス固有の FTData フォルダーのパスを取得する必要があります。このパスは、言語の辞書ファイルおよび類義語辞典ファイルを指定する構成値を追加するときに使用します。
SQL Server の各インスタンスのインスタンス名を取得するには
[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
[ファイル名を指定して実行] ダイアログ ボックスで、[名前] ボックスに「Regedit」と入力します。
[OK] をクリックします。レジストリ エディターが開きます。
レジストリ エディターで、SQL Server 2008 R2 の最初のインスタンス (インスタンス ID は MSSQL10_50.MSSQLSERVER) のレジストリ キーである HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\SQL を選択します。
右側のペインに、インスタンス名と対応するインスタンス ID が表示されます。
重要 |
---|
別のサーバー インスタンスのインスタンス名を確認するには、レジストリ パスに MSSQL10_50.MSSQLSERVER の代わりにそのインスタンス ID を指定します。 |
各インスタンスの FTData パスを取得するには
[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
[ファイル名を指定して実行] ダイアログ ボックスで、[名前] ボックスに「Regedit」と入力します。
[OK] をクリックします。
レジストリ エディターで、SQL Server のインスタンスのレジストリ キーである HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\instance_ID\MSSQLServer (instance_ID は、SQL Server の最初のインスタンスの場合は MSSQL10_50.MSSQLSERVER) を選択します。このレジストリ キーの値は次のようになります。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\Setup
右側のペインに FullTextDefaultPath 値が表示されます。この値には、インスタンス固有の FTData フォルダーのパスが含まれています。たとえば、SQL Server 2008 R2 の最初のインスタンスの場合、次の既定のパスになります。
C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\FTData
ワード ブレーカーと関連の言語コンポーネントの登録
マイクロソフトからライセンスが許可されているサード パーティのワード ブレーカーのインストール手順は、3 段階で構成されます。各段階の概要は次のとおりです。それぞれの手順については、後で説明します。
ワード ブレーカーの COM ClassID と登録する言語のステミング機能インターフェイスを、レジストリの <InstanceRoot>\MSSearch\CLSID ノードにキーとして追加します。
登録する言語の <InstanceRoot>\MSSearch\Language ノードにキーを追加します。
登録する言語の辞書ファイルおよび類義語辞典ファイルの場所を指定する構成値を追加します。
注 |
---|
ここでは、デンマーク語のワード ブレーカーを例として使用します。各言語のワード ブレーカーのインストールに必要な値は、このトピックの後半の表に示します。 |
段階 1: ワード ブレーカーの COM ClassID と登録する言語のステミング機能インターフェイスの追加
注意 |
---|
レジストリを誤って編集すると、システムに重大な障害が発生する場合があります。レジストリを変更する前に、コンピューター上のすべての重要なデータをバックアップしておくことをお勧めします。 |
デンマーク語用のこれらのコンポーネントの COM Class ID を追加するには、次の手順に従います。
次の手順を行って、レジストリ エディターを開きます。
[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
[ファイル名を指定して実行] ダイアログ ボックスで、[名前] ボックスに「Regedit」と入力します。
レジストリ エディターで、SQL Server の最初のインスタンスのレジストリ キーである HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSearch\CLSID を選択します。
[編集] メニューの [新規] をポイントし、[キー] をクリックします。
「{16BC5CE4-2C78-4CB9-80D5-386A68CC2B2D}」と入力します。
Enter キーを押します。
右側のペインで、[既定] レジストリ値を右クリックし、[修正] をクリックします。
[文字列の編集] ダイアログ ボックスで、[値のデータ] ボックスに「danlr.dll」と入力し、[OK] をクリックします。
手順 4. の値を {83BC7EF7-D27B-4950-A743-0F8E5CA928F8} に置き換えて、手順 3. ~ 7. を繰り返します。
指定した言語で、手順 4. と 8. のキー値を登録する言語のキー値に置き換えて、上記の手順を実行します。次の表に、これらの値の一覧を示します。手順 7. で、danlr.dll を登録する言語の .dll 名に置き換えます。
言語 |
手順 4. のキー値 |
手順 7. の .DLL 名 |
手順 8. のキー値 |
---|---|---|---|
デンマーク語 |
{16BC5CE4-2C78-4CB9-80D5-386A68CC2B2D} |
danlr.dll |
{83BC7EF7-D27B-4950-A743-0F8E5CA928F8} |
ポーランド語 |
{B8713269-2D9D-4BF5-BF40-2615D75723D8} |
lrpolish.dll |
{CA665B09-4642-4C84-A9B7-9B8F3CD7C3F6} |
トルコ語 |
{23A9C1C3-3C7A-4D2C-B894-4F286459DAD6} |
trklr.dll |
{8DF412D1-62C7-4667-BBEC-38756576C21B} |
段階 2: 言語の <InstanceRoot>\MSSearch\Language ノードへのキーの追加
このノードにデンマーク語のキーを追加するには、次の手順を実行します。
SQL Server の最初のインスタンスのレジストリ キーである HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSearch\Language を選択します。
段階 1 の手順 4. のキー名を dan に置き換えて、段階 1 の手順 3. ~ 5. を繰り返します。
指定した言語で、段階 1 の手順 4. のキー名を次の表に示す特定の言語の値に置き換えて、段階 1 の手順を実行します。
言語 |
手順 4. のキー名 |
---|---|
デンマーク語 |
dan |
ポーランド語 |
plk |
トルコ語 |
trk |
段階 3: 登録する言語の各言語コンポーネントがある場所を指定する構成値の追加
デンマーク語用のこれらのコンポーネントの構成値を追加するには、次の手順を実行します。
上記の段階 2 で入力したレジストリ キーを選択します。SQL Server の最初のインスタンスの場合、このレジストリ キーは HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSearch\Language\dan です。
[編集] メニューの [新規] をポイントし、[文字列値] をクリックします。
「TsaurusFile」と入力します。
Enter キーを押します。
追加した TsaurusFile レジストリ値を右クリックし、[修正] をクリックします。
[文字列の編集] ダイアログ ボックスで、[値のデータ] ボックスに「tsdan.xml」と入力します。
[OK] をクリックします。
その言語の残りの言語コンポーネント (類義語辞典ファイル、言語 (ロケール)、ワード ブレーカー、ステミング機能) ごとに、手順 2. ~ 7. を繰り返して追加します。デンマーク語、ポーランド語、またはトルコ語用のこれらのコンポーネントを登録するための値を以下に示します。
デンマーク語用の値
言語固有の値の種類 (手順 2.)、値の名前 (手順 3. と 5.)、および値のデータ (手順 6.) を次の表に示す各値セットに置き換え、手順 2. ~ 7. を繰り返して追加します。
手順 2. の値の種類 |
手順 3. と 5. の値の名前 |
手順 6. の値の種類 |
---|---|---|
文字列値 |
TsaurusFile |
tsdan.xml |
DWORD 値 |
Locale |
00000406 |
文字列値 |
WBreakerClass |
{16BC5CE4-2C78-4CB9-80D5-386A68CC2B2D} |
文字列値 |
StemmerClass |
{83BC7EF7-D27B-4950-A743-0F8E5CA928F8} |
ポーランド語用の値
ポーランド語の場合、次の表に示す値を使用して、上記の手順を実行します。上記の段階 2 で入力したポーランド語のレジストリ キーを選択します。SQL Server の最初のインスタンスの場合、このレジストリ キーは HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSearch\Language\plk です。
言語固有の値の種類 (手順 2.)、値の名前 (手順 3. と 5.)、および値のデータ (手順 6.) を次の表に示す各値セットに置き換え、手順 2. ~ 7. を実行して追加します。
手順 2. の値の種類 |
手順 3. と 5. の値の名前 |
手順 6. の値のデータ |
---|---|---|
文字列値 |
TsaurusFile |
tsplk.xml |
DWORD 値 |
Locale |
00000415 |
文字列値 |
WBreakerClass |
{CA665B09-4642-4C84-A9B7-9B8F3CD7C3F6} |
文字列値 |
StemmerClass |
{B8713269-2D9D-4BF5-BF40-2615D75723D8} |
トルコ語用の値
トルコ語の場合、次の表に示す値を使用して、上記の手順を実行します。上記の段階 2 で入力したトルコ語のレジストリ キーを選択します。SQL Server の最初のインスタンスの場合、このレジストリ キーは HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSearch\Language\trk です。
言語固有の値の種類 (手順 2.)、値の名前 (手順 3. と 5.)、および値のデータ (手順 6.) を次の表に示す各値セットに置き換え、手順 2. ~ 7. を実行して追加します。
手順 2. の値の種類 |
手順 3. と 5. の値の名前 |
手順 6. の値のデータ |
---|---|---|
文字列値 |
TsaurusFile |
tstrk.xml |
DWORD 値 |
Locale |
0000041f |
文字列値 |
WBreakerClass |
{8DF412D1-62C7-4667-BBEC-38756576C21B} |
文字列値 |
StemmerClass |
{23A9C1C3-3C7A-4D2C-B894-4F286459DAD6} |
フルテキスト検索でサポートされている言語の一覧の更新
サード パーティ製のワード ブレーカーを読み込んだら、フルテキスト インデックスおよびフルテキスト クエリでサポートされている LCID の一覧を更新する必要があります。この一覧を更新するには、sp_fulltext_service システム ストアド プロシージャを使用して次の手順を実行します。
新しくインストールされたワード ブレーカーおよびフィルターをサーバー インスタンスに読み込みます。次に例を示します。
EXEC sp_fulltext_service @action='load_os_resources', @value=1;
言語の一覧を更新します。次に例を示します。
exec sp_fulltext_service 'update_languages';
新しく読み込まれたワード ブレーカーの言語が、sys.fulltext_languages カタログ ビューによって一覧表示されます。