etx_HiliteDoc() 函数

etx_HiliteDoc() 函数返回线索在文档中的位置。

语法

etx_HiliteDoc (document, index_name, clue)

元素 用途 数据类型
文档 指定表中列的名称,该列包含要突出显示其信息的文档。 BLOB、CLOB、 LVARCHAR、 VARCHAR、IfxMRData 或 IfxDocDesc 之一。

您不能指定类型为 CHAR 的列。

index_name 指定搜索索引的名称。 LVARCHAR
clue 指定搜索文本。 要么是加引号的线索,要么是包含线索和可选调整参数的 Row() 表达式。线索可以是加引号的字符串,也可以是以 IfxDocDesc 数据类型存储的文档。

返回类型

etx_HiliteDoc() 函数返回 etx_HiliteType,这是由 GBase 8s Excalibur Text Search DataBlade 模块定义的指定行数据类型。

只有在创建 etx 索引之前指定了 FILTER="STOP_ON_ERROR" FILTER="CONTINUE_ON_ERROR"etx_HiliteDoc() 函数才会在具有 etx_HiliteType 值的 viewer_doc 字段中返回已过滤的文档。

如果先前创建 etx 索引时没有进行过滤,而您对包含专用格式设置信息的文档(如 Microsoft® Word 文档)执行了 etx_HiliteDoc() 函数,那么 viewer_doc 字段将以其原始格式包含未过滤的文档。vec_offset 字段包含相对于未过滤文档的偏移值,可能包含额外的非文本字符。要避免对二进制数据建立索引(在 etx 搜索中无用),需要在对文档建立索引之前对其进行过滤。

有关 etx_HiliteType 行数据类型的更多信息,请参阅 etx_HiliteType 数据类型

用法

可以在 select 列表中使用 etx_HiliteDoc() 例程来突出显示之前通过 etx_contains 扫描检索到的单个文档中的线索。

无法通过指定 EXECUTE FUNCTION 使用该例程。

请参阅 etx_ViewHilite() 例程,以获取有关支持您查看突出显示文本的相关例程的信息。

示例

假设您已经通过下列查询检索到若干行:
SELECT id FROM videos
    WHERE etx_contains(description, Row('multimedia','SEARCH_TYPE=PHRASE_APPROX'
));
可以使用 etx_HiliteDoc() 例程对通过先前查询检索到的一个或多个文档的突出显示信息进行检索:
SELECT etx_HiliteDoc(description, 'desc_idx1',
    Row('multimedia', 'SEARCH_TYPE=PHRASE_APPROX'))
    FROM videos
    WHERE id = 1;

请参阅 etx_ViewHilite() 例程,通过示例了解如何查看由该查询返回的突出显示文本。