IBM Books
(C) IBM Corp. 2000

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

HIGHLIGHT 関数の使用

使用可能な SQL 表値関数は 2 つありますが、 いずれも db2ext.textsearch と呼ばれます。 db2ext.highlight 関数を使用するには、 追加の numberOfHits および hitInformation の各パラメーターとともに db2ext.textsearch 関数を使用する必要があります。

この例では db2ext.highlight 関数を呼び出し、db2ext.textsearch 関数によって検出されたヒットをどれも強調表示することなく文書全体を表示します。

select  p.docid, 
     db2ext.highlight(p.comment, t.hitinformation, 'WINDOW_NUMBER = 0')
          as highlight 
from DB2EXT.TEXTTAB p,
     table (db2ext.textsearch('"bestseller" | "peacekeeping" | "soldiers"
          | "attention"', 'DB2EXT', 'COMMENT', 0, 20,
          cast(NULL as INTEGER), 10)) t
where p.docid = t.primkey and p.docid = 2
 

検索引き数は以下の結果を戻します。

DOCID HIGHLIGHT
 
2     A New York Times bestseller about peacekeeping soldiers called 
      "Keepers" who devise a shocking scheme to get the worlds 
      attention after their tour of duty ends.
 
1 record(s) selected.

どの db2ext.highlight 関数の例でも、 表関数 db2ext.textsearch は、「bestseller」、「peacekeeping」、 または「attention」のいずれかの語を検索します。

この例では db2ext.highlight 関数を呼び出し、db2ext.textsearch 関数によって検出されたヒットをすべて強調表示して、 文書全体を表示します。

select  p.docid, 
     db2ext.highlight(p.comment, t.hitinformation, 'WINDOW_NUMBER = 0,
          TAGS = ("<bf>", "</bf>" ) ') as highlight 
from DB2EXT.TEXTTAB p,
     table (db2ext.textsearch('"bestseller" | "peacekeeping" | "soldiers"
          | "attention"', 'DB2EXT', 'COMMENT', 0, 20,
          cast(NULL as INTEGER), 10)) t
where p.docid = t.primkey and p.docid = 2
 

検索引き数は以下の結果を戻します。

DOCID HIGHLIGHT
 
2     A New York Times <bf>bestseller</bf> about <bf>peacekeeping</bf>
      <bf>soldiers</bf> called "Keepers" who devise a shocking scheme to
      get the worlds <bf>attention</bf> after their tour of duty ends.
 
1 record(s) selected.

この例では、db2ext.highlight 関数を呼び出して、 最大で文書の 10 の部分 (ウィンドウ) を表示します。 各ウィンドウ・サイズは 24 です。ヒットの両側のデータは約 12 バイトになります。 さらに、表関数 db2.textsearch によって検出されたヒットが強調表示されます。

select  p.docid, 
     db2ext.highlight(p.comment, t.hitinformation, 'WINDOW_NUMBER = 10,
          WINDOW_SIZE = 24, TAGS = ("<bf>", "</bf>" ) ') as highlight 
from DB2EXT.TEXTTAB p,
     table (db2ext.textsearch('"bestseller" | "peacekeeping" | "soldiers"
          | "attention"', 'DB2EXT', 'COMMENT', 0, 20,
          cast(NULL as INTEGER), 10)) t
where p.docid = t.primkey and p.docid = 2

検索引き数は以下の結果を戻します。

DOCID HIGHLIGHT
 
2     York Times <bf>bestseller</bf> about <bf>peacekeeping</bf> ...
      <bf>peacekeeping</bf> <bf>soldiers</bf> called "Keepers" ... the
      worlds <bf>attention</bf> after their 
 
1 record(s) selected.

検出される最初のヒットは <bf>bestseller</bf> で、 このヒットは最初のウィンドウを決定します。 2 番目のヒットは <bf>peacekeeping</bf> で、 最初のヒットから 8 バイトしか離れていないため、 最初のウィンドウに完全に入れられます。 3 番目のヒット <bf>soldiers</bf> は、 最初のウィンドウの外側にあるので、新規ウィンドウを決定します。 2 番目のヒット <bf>peacekeeping</bf><bf>soldiers</bf> ヒットの左側から 2 バイトしか離れていないので、 これも 2 番目のウィンドウに入れられ、強調表示されます。 4 番目のヒット <bf>attention</bf> は、 2 番目のウィンドウの外側にあるので、新規ウィンドウを決定します。 このウィンドウのサイズに以前のヒットまたは追加のヒットは入らないので、 ヒットの周りのデータがウィンドウに入ります。

さらに、WINDOW_SEPARATOR が指定されていないため、 デフォルトのウィンドウ区切り文字「 ... 」が、3 つの文書ウィンドウを分離するために使用されます。

db2ext.highlight 関数を使用する際のハイパフォーマンスを確保するには、 ユーザーは db2ext.textsearch 表値関数の検索結果を制限する必要があります。

パラメーターの詳細については、DB2EXT.HIGHLIGHTを参照してください。


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