IBM Books
(C) IBM Corp. 2000

Net Search Extender 管理およびユーザーズ・ガイド

DB2EXT.TEXTSEARCH

ストアード・プロシージャー検索および SQL スカラー検索関数に加えて、Net Search Extender は、ストアード・プロシージャーに極めてよく似た 2 つのSQL 表値関数を備えています。

それらの表値関数は両方とも db2ext.textsearch と呼ばれます。 2 つの違いは、その一方が HIGHLIGHT 関数をサポートし、 2 つの追加パラメーター numberOfHitshitInformation を持っているということだけです。

コンパウンド主キーを持つ表では、表値関数を使用できないことに注意してください。

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)
                )
 
 

関数パラメーター

入力パラメーターを以下に示します。

query
詳細については、検索引き数の構文を参照してください。

indexSchema, indexName
検索する索引を識別します。 詳細については、CREATE INDEXを参照してください。

resultFirstRow
照会の結果リストは、分けて戻されます。このパラメーターは、照会結果リストのどの行が、 表値関数の結果表に最初に書き込まれるかを記述します。 値は 0 以上でなければなりません。

番号 0 は、照会結果リストの最初の行を表わします。

resultNumberRows
このパラメーターは、 照会結果リストのうちの何行が表値関数の結果表に書き込まれるかを記述します。0 は、 すべての結果が戻されなければならないことを意味します。

このパラメーターは、照会結果リストの最大サイズを決定する結果限界照会パラメーターとは 異なることに注意してください。

primaryKeyBinding
このパラメーターのタイプによって、primaryKey Output パラメーターのタイプが決まります。<type1> のタイプの主キーをもった基本表に対して、テキスト索引を作成した場合、primaryKeyBinding も、<type1> のタイプである必要があります。

さらに、このパラメーターによって、テキスト検索の範囲が決まります。primaryKeyBindingNULL ("CAST(NULL as <type1)" に設定した場合、検索範囲は、索引に保管されているすべての文書になります。 あるいは、primaryKeyBinding がバインドされている文書だけに検索を制限することができます。

たとえば、primaryKeyBinding を CAST(5 as BIGINT) に設定する場合、 検索を BIGINT 主キー値の「5」を持った単一の文書に制限します。

サポートされているのは、SMALLINTINTEGERBIGINTREALDOUBLEVARCHAR FOR BIT DATADATE TIME、および TIMESTAMP のタイプの、単一列の主キーのみであることに注意してください。

numberOfhits
このオプションは、db2ext.textsearch 関数によって戻されるヒット 情報の最大数を指定します。 0 を指定すると、最大で 1100 のヒットに関する情報が提供されます。 この処理には多大の時間がかかる可能性があります。

このパラメーターは、db2ext.highlight 関数に必要な強調表示情報の 組み立てにのみ必要であることに注意してください。

関数パラメーター

以下の戻り値は、さらに結果が要求された場合に正規表に結合する必要のある、一時表に保管されます。 SELECT ステートメントで要求されている場合にのみ、 NUMBEROFMATCHESSCORETOTALNUMBEROFRESULTS、および HITINFORMATION が計算されることに注意してください。

primKey
検索された文書の主キー。

numberofmatches
NUMBEROFMATCHES は、各文書で一致した個数を示す INTEGER 値です。

score
score は、DOUBLE 値を戻します。文書での検索語の頻度が増加すれば、文書スコアが増加します。

totalNumberOfResults
照会結果リストは、検索された結果の個数を示します。各行は同じ値を持つことに注意してください。

また、STOP SEARCH AFTER、 または RESULT LIMITSCORE 構文とともに照会で使用する場合は、 この数がすでに信頼できなくなっていることに注意してください。

hitInformation
db2ext.textsearch から戻されるヒット情報は、強調表示処理に必要です。 現在のところ、約 1100 ヒットのヒット情報がこの出力パラメーターに含まれています。 ヒット数がこのしきい値を越えた場合は、超過した分のヒット情報が無視されます。

この値は 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 関数とともに使用する例については、***ページを参照してください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]