IBM Books
(C) IBM Corp. 2000, 2003.

Net Search Extender

管理和用户指南

使用 HIGHLIGHT 函数

提供了两个 SQL 表值函数,它们都称为 db2ext.textsearch。要使用 db2ext.highlight 函数,必须使用带有附加 numberOfHitshitInformation 参数的 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”、“soldiers”或“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>,此匹配项将确定第一个窗口。第二个匹配项 <bf>peacekeeping</bf> 与第一个匹配项只相隔 8 个字节,会将它完全放置在第一个窗口中。第三个匹配项 <bf>soldiers</bf> 在第一个窗口外边,它将确定新窗口。由于第二个匹配项 <bf>peacekeeping</bf> 只与 <bf>soldiers</bf> 匹配项的左边相隔 2 个字节,因此,也会将它放置在第二个窗口中,并进行突出显示。第四个匹配项 <bf>attention</bf> 在第二个窗口外部,所以它将确定新窗口。由于此窗口中没有包含任何先前的或附加的匹配项,因此,该窗口中只包含匹配项附近的数据。

另外,因为没有指定任何 WINDOW_SEPARATOR,所以采用缺省窗口分隔符“...”来分隔这三个文档窗口。

注意

为了确保在使用 db2ext.highlight 函数时具有高性能,用户应限制 db2ext.textsearch 表值函数中的搜索结果。

有关这些参数进一步的详细信息,参见DB2EXT.HIGHLIGHT


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]