Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


16.26.1 同義語検索を行うための準備をする

ここでは,同義語検索を行うときの準備作業について説明します。ここの説明は,すでにマルチノード機能を使用していることが前提となっています。

〈この項の構成〉

(1) テキストインデクスの定義を検討する

同義語検索を行う場合,テキストインデクスを使用すると性能向上が見込まれるため,テキストデータ(文書データ)を格納している列にテキストインデクスを定義することを推奨します。詳細については,「11.16.1 同義語検索を行うための準備をする」の「(1) テキストインデクスの定義を検討する」を参照してください。

(2) 同義語辞書ファイルの格納ディレクトリに必要な容量を見積もる

マルチノード機能の使用時に同義語検索を行う場合は,同義語辞書ファイルの格納ディレクトリを,ノード切り替え対象のファイルシステムに作成する必要があります。ファイルシステムを用意する前に次のことを実施してください。

同義語辞書ファイルの格納ディレクトリの容量見積もり

同義語辞書ファイルの格納ディレクトリの容量見積もりを実施し,その結果を考慮してファイルシステムを用意してください。同義語辞書ファイルの格納ディレクトリの容量見積もりについては,「11.16.1 同義語検索を行うための準備をする」の「(3) 同義語辞書ファイルの格納ディレクトリに必要な容量を見積もる」を参照してください。

重要

同義語辞書ファイルの格納ディレクトリの空き容量が不足した場合,同義語辞書ファイルの格納ディレクトリを変更する必要があります。同義語辞書ファイルの格納ディレクトリを変更した場合,すべての同義語辞書を再登録する必要があるため,ディレクトリを作成しているディスクの容量不足などが発生しないように,見積もりを行ってください。

メモ

同義語辞書ファイルの格納ディレクトリとは,サーバ定義のadb_syndict_storage_pathオペランドに指定するディレクトリのことです。

(3) 同義語辞書ファイルの格納ディレクトリを作成するファイルシステムを準備する

同義語辞書ファイルの格納ディレクトリは,ノード切り替え対象のファイルシステムに作成する必要があります。ノード切り替え対象のファイルシステムは,プライマリノードおよびセカンダリノードから参照可能なディスクで構成されるVG内のLV上に作成してください。共有ディスクについては,マニュアルHAモニタ Linux(R)(x86)編共有ディスクの構成を参照してください。

(4) 同義語辞書ファイルの格納ディレクトリを作成するファイルシステムを初期化する

同義語辞書ファイルの格納ディレクトリを作成するファイルシステムを初期化してください。同義語辞書ファイルの格納ディレクトリを作成するLVとして作成した/dev/vg_hadb02/hadb_syndictを,ext4のファイルシステムで初期化する場合の実行例を次に示します。

mkfs -t ext4 /dev/vg_hadb02/hadb_syndict

(5) 同義語辞書ファイルの格納ディレクトリを作成する

ファイルシステムの準備が完了したあとに,同義語辞書ファイルの格納ディレクトリを作成し,作成したディレクトリに対する権限を付与してください。詳細については,「11.16.1 同義語検索を行うための準備をする」の「(4) 同義語辞書ファイルの格納ディレクトリを作成する」~「(5) 同義語辞書ファイルの格納ディレクトリに対する権限を付与する」を参照してください。

重要
  • 同義語辞書ファイルの格納ディレクトリを削除しないでください。また,同義語辞書ファイルの格納ディレクトリ下のファイルを,adbsyndictコマンド以外で削除しないでください。削除した場合,同義語検索の実行がエラーになります。

  • 同義語辞書ファイルの格納ディレクトリ下のファイルを,adbsyndictコマンド以外で更新しないでください。更新した場合,同義語検索の実行結果が不正となるか,または同義語検索の実行がエラーになります。

メモ

同義語辞書ファイルの格納ディレクトリはフルバックアップの対象になります。詳細については,「10.3.1 バックアップの取得方法」の「(2) バックアップを取得する手順」を参照してください。

(6) マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを作成する

マルチノード機能の使用時に同義語検索を行う場合は,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを,ノードローカルのファイルシステムに作成してください。マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリは,全ノードで作成する必要があります。

メモ

マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリとは,サーバ定義のadb_syndict_node_storage_pathオペランドに指定するディレクトリのことです。

同義語検索を行うSQL文がセカンダリノードまたはワーカーノードで実行される場合,ここで作成したディレクトリ下にある同義語辞書ファイルが使用されます。adbsyndictコマンドによる同義語辞書の登録,変更,または削除をした際,プライマリノードの同義語辞書ファイルが自動的にセカンダリノードおよびワーカーノードにコピーされ,ここで作成したディレクトリ下に格納されます。

重要

セカンダリノードまたはワーカーノードに同義語辞書ファイルが格納されていなかったり,古い同義語辞書ファイルが格納されていたりした場合でも,同義語検索は実行できます。ただし,この場合,そのセカンダリノードまたはワーカーノードに同義語検索を行うSQL文の実行処理が割り振られても,そのセカンダリノードまたはワーカーノードではSQL文の実行処理は行われません。SQL文の実行処理はプライマリノードで行われます。この状態が続くと,プライマリノードの負荷が高まるおそれがあるため,同義語辞書ファイルの同期を取って,セカンダリノードまたはワーカーノードに最新の同義語辞書ファイルを格納するようにしてください。同義語辞書ファイルの同期については,「16.26.5 同義語辞書ファイルの同期を取る」を参照してください。

次に示す手順で,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを作成してください。

手順

1.マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリの容量を見積もる

マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリの容量見積もりを実施し,その結果を考慮してディレクトリを作成してください。マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリの容量見積もりについては,「6.17 マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリの容量見積もり」を参照してください。

重要

マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリの空き容量が不足した場合,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを変更する必要があります。マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを変更した場合,同義語辞書ファイルの同期を実行する必要があるため,ディレクトリを作成しているディスクの容量不足などが発生しないように,見積もりを行ってください。

2.マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを作成する

マルチノード機能で使用する同義語辞書ファイルを格納するディレクトリを作成してください。ディレクトリを作成する際,次の点に注意してください。

  • 次のディレクトリは,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリにできません。

    • サーバディレクトリ

    • サーバディレクトリの下位のディレクトリ

    • 下位のディレクトリにサーバディレクトリがあるディレクトリ

    • DBディレクトリ

    • DBディレクトリの下位のディレクトリ

    • 下位のディレクトリにDBディレクトリがあるディレクトリ

    • ルートディレクトリ

    • adb_syndict_storage_pathオペランドに指定したディレクトリ

    • adb_syndict_storage_pathオペランドに指定したディレクトリの下位のディレクトリ

    • 下位のディレクトリに,adb_syndict_storage_pathオペランドに指定したディレクトリがあるディレクトリ

    DBディレクトリが/HADB/dbの場合,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリにできるディレクトリの例と,できないディレクトリの例を次に示します。

    マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリの例

    理由

    マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリにできるディレクトリの例

    /HADB/syndict

    なし。

    マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリにできないディレクトリの例

    /HADB/db

    左記のディレクトリは,DBディレクトリと同一のため,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリにできません。

    /HADB/db/synonym

    左記のディレクトリは,DBディレクトリの下位のディレクトリのため,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリにできません。

    /HADB

    左記のディレクトリは,下位のディレクトリにDBディレクトリがあるため,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリにできません。

  • HADBサーバのインストール時にインストールデータを格納したディレクトリを,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリにしないでください。

3.マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリに対する権限を付与する

次に示す手順で,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリに対して必要な権限を付与してください。

手順

  1. マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリに,HADB管理者に対する読み取り権限,書き込み権限,および実行権限を付与する

  2. マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリのパスに含まれるすべてのディレクトリに,HADB管理者に対する実行権限を付与する

(例)マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリが/HADB/syndictの場合

  • /HADB/syndictには,読み取り権限,書き込み権限,および実行権限が必要です。

  • /,および/HADBには,実行権限が必要です。

重要
  • マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを変更した場合,adbsyndictコマンドを実行して同義語辞書ファイルの同期を取る必要があります。同期を取らなかった場合,同義語検索を行うSQL文の実行ノードがセカンダリノードまたはワーカーノードからプライマリノードに切り替わります。その結果,プライマリノードの負荷増加や,実行ノードを切り替える処理によって,検索性能が低下するおそれがあります。

  • マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを削除しないでください。また,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリ下のファイルを,adbsyndictコマンド以外で削除しないでください。削除した場合,同義語検索を行うSQL文の実行ノードがセカンダリノードまたはワーカーノードからプライマリノードに切り替わります。その結果,プライマリノードの負荷増加や,実行ノードを切り替える処理によって,検索性能が低下するおそれがあります。

  • マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリ下のファイルを,adbsyndictコマンド以外で更新しないでください。更新した場合,同義語検索の実行結果が不正となるか,または同義語検索の実行がエラーになります。

(7) HAモニタのserversファイルの指定を変更する

マルチノード構成のHADBサーバを終了して,HAモニタのserversファイルの指定を変更してください。

図16‒1 マルチノード機能を使用した場合のシステム構成例」の場合,FS002が同義語辞書ファイルの格納ディレクトリを作成するファイルシステムです。VGの名称はvg_hadb02で,LVの名称はhadb_syndictとします。

次に示すオペランドの指定値を変更します。

serversファイルの指定例については,次のどちらかの個所を参照してください。

serversファイルの各オペランドの詳細については,マニュアルHAモニタ Linux(R)(x86)編サーバ対応の環境設定(servers)を参照してください。

(8) サーバ定義を修正する

サーバ定義に次に示すオペランドを指定してください。

メモ

サーバ定義の変更手順については,「8.5.2 サーバ定義の変更方法」を参照してください。

(9) マルチノード構成のHADBサーバを開始する

マルチノード構成のHADBサーバを開始してください。

マルチノード構成のHADBサーバの開始方法については,「16.4.1 マルチノード構成のHADBサーバの開始方法」を参照してください。

(10) テキストインデクスを定義する

(1) テキストインデクスの定義を検討する」の結果,テキストインデクスを定義する場合は,次に示す手順でテキストインデクスを定義してください。

手順

  1. CREATE INDEX文を実行して,テキストインデクスを定義する

  2. adbidxrebuildコマンドを実行して,テキストインデクスのインデクスデータを作成する

(11) 同義語辞書を登録する

同義語辞書を登録するには,「11.16.1 同義語検索を行うための準備をする」の「(7) 同義語一覧定義ファイルを作成する」~「(10) 同義語辞書ファイルの格納ディレクトリのバックアップを取得する」の作業を実施してください。

重要

同義語一覧定義ファイル,辞書情報登録ファイル,辞書情報削除ファイルは,プライマリノードから参照可能なファイルシステムに作成することを推奨します。同義語辞書ファイルの格納ディレクトリと同様に,ノード切り替え対象のファイルシステム上に作成するか,またはプライマリノードおよびセカンダリノードで同一パスのディレクトリにマウントした,ノードから参照可能なディスク上に作成することを検討してください。

プライマリノードadbsyndictコマンドを実行して同義語辞書を登録した場合,自動的に同義語辞書ファイルの同期が行われます。そのため,-sオプションを指定したadbsyndictコマンドの実行は不要です。