停用词

停用词支持

Redis Stack 有一个默认的停用词列表。这些词通常非常常见,以至于它们不会为搜索增加太多信息,但会在索引中占用大量空间和CPU时间。

在索引时,停用词会被丢弃且不会被索引。在搜索时,它们也会被忽略,并被视为未发送到查询处理器。这是在解析查询时完成的。

目前,默认的停用词列表适用于所有语言的所有全文索引,并且可以在创建索引时手动覆盖。

默认停用词列表

默认情况下,以下单词被视为停用词:

 a,    is,    the,   an,   and,  are, as,  at,   be,   but,  by,   for,
 if,   in,    into,  it,   no,   not, of,  on,   or,   such, that, their,
 then, there, these, they, this, to,  was, will, with

覆盖默认的停用词列表

在创建索引时,可以使用STOPWORDS参数来定义(或完全禁用)索引的停用词,该参数与[FT.CREATE命令一起使用。

格式为 STOPWORDS {number} {stopword} ...,其中 number 是给定的停用词数量。STOPWORDS 参数必须在 SCHEMA 参数之前。例如:

FT.CREATE myIndex STOPWORDS 3 foo bar baz SCHEMA title TEXT body TEXT 

禁用停用词的使用

完全禁用停用词可以通过将STOPWORDS 0传递给FT.CREATE来实现。

避免在搜索查询中检测停用词

在极少数使用情况下,如果查询非常长,并且客户端应用程序保证不包含停用词,那么在解析查询时可以避免检查它们。这节省了一些CPU时间,并且只有在查询中包含数十个或更多术语时才值得这样做。如果不验证查询是否包含停用词就使用此方法,可能会导致空查询。

RATE THIS PAGE
Back to top ↑