DELETE 時
2.5 文書検索プラグインのデータベースの作成
2.5.6 インデクスの定義
文書検索プラグインでのインデクスの作成は,通常のインデクス定義,および差分インデクスを使用した 登録性能を向上させるためのインデクス定義があります。また,文書の登録または更新時のインデクス作 成方法を指定することもできます。
注意事項
大量の文書が登録されている表に対し,CREATE INDEX で n-gram インデクスを作成する場合,タ イムアウトが発生する場合があります。これを避けるために,大量の文書のインデクスを作成する CREATE INDEX を実行するときは,次に示す設定をしてタイムアウトを無制限にしてから実行して ください。
HiRDB のシステム共通定義
pd_watch_time=0クライアント環境変数
PDCWAITTIME=0また,この場合はログを取得しない運用をお勧めします。ログを取得しない運用については,「5.3.1(3)
ログレスモード」を参照してください。
以降,各定義方法について説明します。
(1) 通常のインデクス定義
全文検索用または概念検索用のインデクス作成情報を定義するには,定義系 SQL の CREATE INDEX を 使用します。この定義をすることで,全文検索機能や概念検索機能が使用できるようになります。
CREATE INDEX のインデクス型識別子には NGRAM と指定してください。また,RD エリア名には,
「2.5.4 データ格納領域の確保」で n-gram インデクス情報の格納領域として確保した RD エリアを指定 してください。n-gram インデクスプラグインで使用するインデクスの RD エリアは,ログ取得モードと なります。CREATE INDEX の詳細については,マニュアル「HiRDB SQL リファレンス」を参照してく ださい。
なお,CREATE INDEX 実行時に指定するプラグインオプションには複数の定義が指定できます。
(例)
複数の定義を指定する場合は,次のように定義ごとに,(半角コンマ)で区切って指定します。
PLUGIN '定義,定義,定義,…'
インデクスの定義では,全文検索機能だけを使用する場合と,全文検索機能に加えて,概念検索機能を使 用する場合とでは,CREATE INDEX の指定方法が異なります。それぞれのインデクスの定義例を次に示 します。
全文検索機能だけを使用する場合
全文検索機能だけを使用する場合の,インデクスの定義例を次の図に示します。
図 2‒11 全文検索機能使用時のインデクス定義例
全文検索機能に加えて,概念検索機能を使用する場合
全文検索機能に加えて,概念検索機能を使用する場合は,CREATE INDEX のプラグインオプション に次の定義の追加が必要です。
PLUGIN 'CONCEPT_ON'
この指定を省略した場合,概念検索用のインデクスが作成されないため,概念検索を実行できません。
概念検索機能を使用する場合の,インデクスの定義例を次の図に示します。
図 2‒12 概念検索機能使用時のインデクス定義例
(2) インデクスファイル自動拡張機能のインデクス定義
インデクスファイル自動拡張機能を使用すると,インデクスファイル作成時の空き領域を,各論理ファイ ルの拡張領域として使用できます。これによって RD エリアを有効利用できるようになるため,インデク スファイル自動拡張機能の使用をお勧めします。この機能を使用する場合は,プラグインオプションに次 の定義が必要です。
PLUGIN 'FLEX_AREA'
この機能を使用するとインデクスが自動的に拡張するため,インデクスの拡張ユティリティを実行する必 要はありません。この機能を利用した場合にインデクスの拡張ユティリティを実行したときは,無視され ます。
インデクスファイル自動拡張機能を使用する場合の,インデクス定義例を次の図に示します。
図 2‒13 インデクスファイル自動拡張機能使用時のインデクス定義例(全文検索用インデクス の場合)
(3) インデクス作成ルール追加機能のインデクス定義
インデクス作成ルール追加機能とは,標準で作成するインデクス情報に,カタカナ,漢字,数字,英字な ど,すべての文字の種類(文字種)の組み合わせを追加する機能です。この機能を使用することで,検索 タームがさまざまな文字種の組み合わせで構成される場合の検索性能が向上します。
特に,概念検索機能を使用する場合には,インデクス作成ルール追加機能を使用することをお勧めします。
(a) インデクス作成ルール追加機能の定義方法
インデクス作成ルール追加機能を使用する場合には,CREATE INDEX のプラグインオプションに対して 次の表に示す内容を定義してください。
表 2‒8 CREATE INDEX のプラグインオプションに対する定義内容
定義内容※ 説明
INDEX_ALL すべての文字種の組み合わせを追加します。特に,概念検索機能を使用する場合には,併用 することをお勧めします。
INDEX_MEDIUM カタカナ,数字,および記号の一部の文字種の組み合わせを追加します。専門分野で使用す る用語や技術系の用語が頻出する場合に,使用することをお勧めします。
注※
半角の英字で記述します。
インデクス作成ルール追加機能を使用する場合の,インデクスの定義例を図 2-14および図 2-15に示しま す。
図 2‒14 インデクス作成ルール追加機能使用時(INDEX_MEDIUM)のインデクス定義例(全 文検索用のインデクスの場合)
図 2‒15 インデクス作成ルール追加機能使用時(INDEX_ALL)のインデクス定義例(概念検索 用のインデクスの場合)
(b) インデクス作成ルール追加機能使用時の注意
インデクス作成ルール追加機能は SGMLTEXT 型の列に対してだけ指定できます。FREEWORD 型の列 に対しては指定できません。
(4) 大小文字・全角文字半角文字統一機能のインデクス定義
大文字と小文字,または全角文字と半角文字の違いを区別しないで検索を実行したい場合には,大小文字・
全角文字半角文字統一機能を使用します。
(a) 大小文字・全角文字半角文字統一機能の定義方法
大小文字・全角文字半角文字統一機能を使用する場合には,CREATE INDEX のプラグインオプションに 対して次の表に示す内容を定義してください。
表 2‒9 定義内容
定義内容※ 説明
SAMECASE=ON 英大文字と英小文字を区別しないでインデクスを作成します。
SAMEWIDE=ON 全角文字と半角文字の英数字,カタカナ,記号を区別しないでインデクスを作成します。
注※
半角の英字で記述します。SAMECASE と SAMEWIDE を組み合わせて指定できます。
大小文字・全角文字半角文字統一機能使用時のインデクス定義例を図 2-16,図 2-17および図 2-18に示 します。
図 2‒16 大小文字統一機能使用時のインデクス定義例(全文検索用のインデクスの場合)
図 2‒17 全角文字半角文字統一機能使用時のインデクス定義例(全文検索用のインデクスの場合)
図 2‒18 大小文字統一機能,および全角文字半角文字統一機能使用時のインデクス定義例(概 念検索用のインデクスの場合)
(b) 大小文字・全角文字半角文字統一機能使用時の注意
• 同義語展開指定をする場合,あらかじめ Text Search Plug-in 02-01 以降のバージョンで同義語辞書 を作成するか,または同義語辞書移行ユティリティを実行して,既存の同義語辞書を移行する必要があ ります。同義語辞書移行ユティリティの詳細については,「3.2.7 phssyndicconv(同義語辞書移行ユ
ティリティ)
」を参照してください。• 02-01 より前のバージョンで作成した同義語辞書を使用した場合,同義語異表記展開を指定しても同義 語辞書に登録した同義語で検索できない場合があります。
• extracts 関数でハイライトタグを埋め込む場合,ハイライト位置条件式に指定する検索タームは文字統 一の対象となりません。データを登録した時の文字で指定してください。extracts 関数については,
「4.2.6 extracts」を参照してください。
• 全角文字半角文字統一機能を指定しないで,近傍条件検索やワイルドカードに"?"を指定した検索を実 行した場合,半角文字のガ行,ザ行,ダ行,バ行,パ行,およびヴを 2 文字として扱います。しかし,
全角文字半角文字統一機能を指定した場合は 1 文字として扱うため注意が必要です。
• 必ず異表記展開する運用であれば,インデクスの文字統一機能を使用することを推奨します。
(5) 拗音統一機能のインデクス定義
検索時に「や」と「ゃ」,「よ」と「ょ」などの拗音を区別しないようにするには,拗音統一機能を使用し ます。
(a) 拗音統一機能の定義方法
拗音統一機能を使用する場合は,CREATE INDEX のプラグインオプションに次の定義を追加してくださ い。
PLUGIN 'SAMEY=ON'
拗音統一機能を使用する場合の,インデクスの定義例を次の図に示します。
図 2‒19 拗音統一機能使用時のインデクス定義例
「SAMEY=ON」を指定すると,次の拗音が統一されます。
(b) 拗音統一機能使用時の注意
• 同義語展開指定をする場合,あらかじめ Text Search Plug-in 02-01 以降のバージョンで同義語辞書 を作成するか,または同義語辞書移行ユティリティを実行して,既存の同義語辞書を移行する必要があ ります。同義語辞書移行ユティリティの詳細については,「3.2.7 phssyndicconv(同義語辞書移行ユ