ストアード・プロシージャー検索および SQL スカラー検索関数に加えて、Net Search Extender は、ストアード・プロシージャーに極めてよく似た 2 つのSQL 表値関数を備えています。
それらの表値関数は両方とも db2ext.textsearch と呼ばれます。 2 つの違いは、その一方が HIGHLIGHT 関数をサポートし、 2 つの追加パラメーター numberOfHits と hitInformation を持っているということだけです。
コンパウンド主キーを持つ表では、表値関数を使用できないことに注意してください。
HIGHLIGHT 関数の使用については、DB2EXT.HIGHLIGHTを参照してください。
注 |
---|
この表値関数は、ユーザー表が単一ノード表スペースに保管された場合にのみ、分散 DB2 環境によって使用されます。 適切なノードに DB2NODE 環境変数を使用して接続していることを確認することも必要です。 |
関数の構文
1. db2ext.textsearch without highlight support db2ext.textSearch ( query VARCHAR(4096), indexSchema VARCHAR(128), indexName VARCHAR(128), resultFirstRow INTEGER, resultNumberRows INTEGER, primKeyBinding <supported types>,// same type as primary key ) return table ( primKey <supported types>,// same type as primary key numberOfMatches INTEGER, score DOUBLE, totalNbResults INTEGER ) 2. db2ext.textsearch with highlight support db2ext.textSearch ( query VARCHAR(4096), indexSchema VARCHAR(128), indexName VARCHAR(128), resultFirstRow INTEGER, resultNumberRows INTEGER, primKeyBinding <supported types>,// same type as primary key numberOfHits INTEGER ) return table ( primKey <supported types>,// same type as primary key numberOfMatches INTEGER, score DOUBLE, totalNbResults INTEGER hitInformation BLOB(20K) )
関数パラメーター
入力パラメーターを以下に示します。
番号 0 は、照会結果リストの最初の行を表わします。
このパラメーターは、照会結果リストの最大サイズを決定する結果限界照会パラメーターとは 異なることに注意してください。
さらに、このパラメーターによって、テキスト検索の範囲が決まります。primaryKeyBinding を NULL ("CAST(NULL as <type1)" に設定した場合、検索範囲は、索引に保管されているすべての文書になります。 あるいは、primaryKeyBinding がバインドされている文書だけに検索を制限することができます。
たとえば、primaryKeyBinding を CAST(5 as BIGINT) に設定する場合、 検索を BIGINT 主キー値の「5」を持った単一の文書に制限します。
サポートされているのは、SMALLINT、INTEGER、BIGINT、REAL、DOUBLE、VARCHAR FOR BIT DATA、DATE 、TIME、および TIMESTAMP のタイプの、単一列の主キーのみであることに注意してください。
このパラメーターは、db2ext.highlight 関数に必要な強調表示情報の 組み立てにのみ必要であることに注意してください。
関数パラメーター
以下の戻り値は、さらに結果が要求された場合に正規表に結合する必要のある、一時表に保管されます。 SELECT ステートメントで要求されている場合にのみ、 NUMBEROFMATCHES、SCORE、TOTALNUMBEROFRESULTS、および HITINFORMATION が計算されることに注意してください。
また、STOP SEARCH AFTER、 または RESULT LIMIT を SCORE 構文とともに照会で使用する場合は、 この数がすでに信頼できなくなっていることに注意してください。
この値は numberOfHits を指定した場合にのみ戻されます。
SQL 表値関数を使用すれば、ストアード・プロシージャー検索と同じ方法でビュー上を検索できます。 ただし、例外として共有メモリーが不要なので、索引をアクティブ化する必要はありません。
この関数は、主としてストアード・プロシージャー検索内で SQL 照会を使用してきたユーザー用です。ただし、基本表上の単一列の主キーのみがサポートされているという制約事項があります。
次の例は、複数列の主キー表に対してどのように作業できるかを示しています。
select s.id from db2ext.sample s, table (db2ext.textSearch( '"characteristics"', 'DB2EXT', 'COMMANDS', 1, 20, cast(NULL as INTEGER))) t where s.id = t.primkey
この例では、まずこの表上で単一のユニーク・キーを使用してビューを作成し、次にこのビュー上で索引を作成する必要があります。
SQL 表値関数を db2ext.highlight 関数とともに使用する例については、***ページを参照してください。