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' ));
SELECT etx_HiliteDoc(description, 'desc_idx1', Row('multimedia', 'SEARCH_TYPE=PHRASE_APPROX')) FROM videos WHERE id = 1;
请参阅 etx_ViewHilite() 例程,通过示例了解如何查看由该查询返回的突出显示文本。