突出
突出显示全文结果
Redis Stack 使用高级算法进行突出显示和汇总,从而仅显示文档的相关部分以响应搜索查询。此功能允许用户立即了解文档与其搜索条件的相关性,通常以粗体文本突出显示匹配的词语。
命令语法
FT.SEARCH ...
SUMMARIZE [FIELDS {num} {field}] [FRAGS {numFrags}] [LEN {fragLen}] [SEPARATOR {sepstr}]
HIGHLIGHT [FIELDS {num} {field}] [TAGS {openTag} {closeTag}]
有两个子命令用于高亮显示。首先是HIGHLIGHT
,该标签将匹配的文本括起来带有 open 和/或 close 标签。第二个是SUMMARIZE
,它将字段拆分为围绕找到的术语的上下文片段。可以在同一查询中汇总字段、突出显示字段或执行这两个作。
综述
FT.SEARCH ...
SUMMARIZE [FIELDS {num} {field}] [FRAGS {numFrags}] [LEN {fragLen}] [SEPARATOR {sepStr}]
摘要会将文本分割成较小大小的片段,每个片段都包含找到的术语和一些额外的周围上下文。
Redis Stack 可以使用SUMMARIZE
关键词。如果未传递其他参数,则使用内置默认值汇总所有返回的字段。
这SUMMARIZE
keyword 接受以下参数:
-
FIELDS
:如果存在,则它必须是第一个参数。应遵循此规定 按 summary 的字段数,该字段本身后跟一个 领域。每个字段都进行了汇总。如果没有FIELDS
指令, 然后汇总所有返回的字段。 -
FRAGS
:要返回的片段数。如果未指定,则默认值为 3。 -
LEN
:每个片段应包含的上下文词数。上下文 单词将找到的术语括起来。较高的值将返回较大的 发短信。如果未指定,则默认值为 20。 -
SEPARATOR
:用于划分各个摘要片段的字符串。 默认值为...
这在搜索引擎中很常见,但您可能会 如果您希望以编程方式划分代码段,请用任何其他字符串覆盖此字符串 稍后。你也可以使用换行序列,因为换行符是从 result body 中。
突出
FT.SEARCH ... HIGHLIGHT [FIELDS {num} {field}] [TAGS {openTag} {closeTag}]
高亮显示将用用户定义的标签对将找到的术语(及其变体)括起来。这可用于使用标记语言以不同的字体显示匹配的文本,或者使文本以不同的方式显示。
Redis Stack 使用HIGHLIGHT
关键词。如果未传递其他参数,则使用内置默认值突出显示所有返回的字段。
这HIGHLIGHT
keyword 接受以下参数:
-
FIELDS
:如果存在,则它必须是第一个参数。应遵循此规定 按要突出显示的字段数,该字段本身后跟一个 领域。突出显示存在的每个字段。如果没有FIELDS
指令, 然后,将突出显示所有返回的字段。 -
TAGS
:如果存在,则必须后跟两个字符串。第一个字符串被前置 添加到每个匹配的术语。第二个字符串将附加到每个匹配的词。如果没有TAGS
是 指定,则内置标签对将追加到每个匹配的术语。
字段选择
如果没有特定字段传递给RETURN
,SUMMARIZE
或HIGHLIGHT
keywords,则返回文档的所有字段。但是,如果这些关键字中的任何一个包含FIELD
指令,则SEARCH
command 将仅返回任何这些指令中列举的所有字段的总和。
这RETURN
keyword 被特殊处理,因为它会覆盖SUMMARIZE
或HIGHLIGHT
.
在命令RETURN 1 foo SUMMARIZE FIELDS 1 bar HIGHLIGHT FIELDS 1 baz
、字段foo
按原样返回,而bar
和baz
不会返回,因为RETURN
,但不包括这些字段。
在命令SUMMARIZE FIELDS 1 bar HIGHLIGHT FIELDS 1 baz
,bar
返回 summarize 和baz
将高亮显示。