etx_ViewHilite() 例程

etx_ViewHilite() 例程突出显示由 etx_GetHilite() etx_HiliteDoc() 例程返回的数据。

语法

etx_ViewHilite (hilite_type, hilite_prefix, hilite_suffix)

元素 用途 数据类型
hilite_type etx_GetHilite()etx_HiliteDoc() 例程返回的 etx_HiliteType 数据。 Etx_HiliteType
hilite_prefix 希望在突出显示字符串之前出现的文本。 LVARCHAR
hilite_suffix 希望在突出显示字符串之后出现的文本。 LVARCHAR

返回类型

etx_ViewHilite() 例程返回 LVARCHAR 值,包含已选中文档的文本,并将搜索文本的每个实例用指定的突出显示标记括起来。

用法

etx_ViewHilite() 例程操作由 etx_GetHilite()etx_HiliteDoc() 例程返回的 vec_offsetviewer_doc 数据。

使用 ETX_HILITE_MAXLEN 环境变量控制突出显示文档的大小

etx_ViewHilite() 例程返回值的缺省大小为 32 767 字节。要覆盖该缺省值以便 etx_ViewHilite() 例程能够返回更大的突出显示文档,可以将 ETX_HILITE_MAXLEN 环境变量设置为一个更高的值。例如:
export ETX_HILITE_MAXLEN 100000

通过将 ETX_HILITE_MAXLEN 设置为大于索引中最大文档大小的某个值,确保也将返回文档中的突出显示字符考虑在内。

较大的 ETX_HILITE_MAXLEN 值可能导致突出显示查询使用更多内存。在设置 ETX_HILITE_MAXLEN 环境变量时,GBase 8s Excalibur Text Search DataBlade 模块 会在缺省值 32 767 字节和返回的突出显示文档的 ETX_HILITE_MAXLEN 内存值之间弥补差值。

示例

以下 SQL 语句使用 etx_GetHilite()etx_ViewHilite() 例程来检索相关文档的文本,并将词 multimediaeditor 的每个实例用 HTML 标记 <b></b> 括起:
SELECT etx_ViewHilite (etx_GetHilite(abstract, rc), '<b>', '</b>')
FROM reports
WHERE etx_contains (abstract, 'multimedia editor', rc # etx_ReturnType);
以下示例使用 etx_HiliteDoc()etx_ViewHilite() 例程检索标识为 1 的文档的文本,并将词 multimedia 的全部实例用 HTML 标记 <b></b> 括起来:
SELECT etx_ViewHilite(etx_HiliteDoc(description, 'desc_idx1',
                      Row('multimedia', 'SEARCH_TYPE=PHRASE_APPROX')),
                      '<b>','</b>')
    FROM videos
    WHERE id = 1;