高亮显示

高亮显示全文结果

Redis Stack 使用先进的算法进行高亮和摘要,这使得只有文档的相关部分会出现在搜索查询的响应中。此功能允许用户立即理解文档与其搜索标准的相关性,通常会以粗体文本突出显示匹配的术语。

命令语法

FT.SEARCH ...
    SUMMARIZE [FIELDS {num} {field}] [FRAGS {numFrags}] [LEN {fragLen}] [SEPARATOR {sepstr}]
    HIGHLIGHT [FIELDS {num} {field}] [TAGS {openTag} {closeTag}]

有两个用于高亮的子命令。第一个是HIGHLIGHT,它用开始和/或结束标签包围匹配的文本。第二个是SUMMARIZE,它将字段分割成围绕找到的术语的上下文片段。可以在同一个查询中总结一个字段、高亮一个字段,或者同时执行这两个操作。

Summarization

FT.SEARCH ...
    SUMMARIZE [FIELDS {num} {field}] [FRAGS {numFrags}] [LEN {fragLen}] [SEPARATOR {sepStr}]

摘要会将文本分割成较小的片段,每个片段包含找到的术语及其周围的一些额外上下文。

Redis Stack 可以使用 SUMMARIZE 关键字执行汇总。如果没有传递额外的参数,所有返回的字段将使用内置的默认值进行汇总。

SUMMARIZE 关键字接受以下参数:

  • FIELDS: 如果存在,它必须是第一个参数。这后面应该跟着要汇总的字段数量,然后是一个字段列表。每个字段都会被汇总。如果没有传递FIELDS指令,则所有返回的字段都会被汇总。

  • FRAGS: 要返回的片段数量。如果未指定,默认值为3。

  • LEN: 每个片段应包含的上下文单词数量。上下文单词围绕找到的术语。较高的值将返回较大的文本块。如果未指定,默认值为20。

  • SEPARATOR: 用于分隔各个摘要片段的字符串。 默认是 ... ,这在搜索引擎中很常见,但如果你希望以后以编程方式分隔片段, 你可以用任何其他字符串覆盖这个默认值。你也可以使用换行序列,因为在处理过程中, 换行符会从结果主体中去除。

高亮显示

FT.SEARCH ... HIGHLIGHT [FIELDS {num} {field}] [TAGS {openTag} {closeTag}]

高亮显示将使用用户定义的一对标签包围找到的术语(及其变体)。这可以用于使用标记语言以不同的字体显示匹配的文本,或以其他方式使文本显示不同。

Redis Stack 使用 HIGHLIGHT 关键字进行高亮显示。如果没有传递额外的参数,所有返回的字段将使用内置的默认值进行高亮显示。

HIGHLIGHT 关键字接受以下参数:

  • FIELDS: 如果存在,它必须是第一个参数。这后面应该跟着要突出显示的字段数量,然后是字段列表。每个存在的字段都会被突出显示。如果没有传递FIELDS指令,则所有返回的字段都会被突出显示。

  • TAGS: 如果存在,它后面必须跟着两个字符串。第一个字符串会添加到每个匹配的术语前面。第二个字符串会添加到每个匹配的术语后面。如果没有指定TAGS,则会使用内置的标签对添加到每个匹配的术语前后。

字段选择

如果没有将特定字段传递给RETURNSUMMARIZEHIGHLIGHT关键字,则返回文档的所有字段。但是,如果这些关键字中的任何一个包含FIELD指令,则SEARCH命令将仅返回这些指令中列出的所有字段的总和。

RETURN 关键字被特殊处理,因为它会覆盖在 SUMMARIZEHIGHLIGHT 中指定的任何字段。

在命令 RETURN 1 foo SUMMARIZE FIELDS 1 bar HIGHLIGHT FIELDS 1 baz 中,字段 foo 按原样返回,而 barbaz 没有返回,因为指定了 RETURN,但没有包含这些字段。

在命令 SUMMARIZE FIELDS 1 bar HIGHLIGHT FIELDS 1 baz 中,bar 被返回为汇总,baz 被返回为高亮。

RATE THIS PAGE
Back to top ↑