全文搜索
执行全文搜索
全文搜索在较长的文本中查找单词或短语。您可以搜索特定文本字段或所有文本字段。
本文提供了对最相关的全文搜索功能的良好概述。有关所有全文搜索功能的更多详细信息,请参阅参考文档.
本文中的示例使用以下字段的架构
字段名称 | 字段类型 |
---|---|
品牌 |
TEXT |
型号 |
TEXT |
描述 |
TEXT |
单个单词
要搜索所有文本字段中的单词(或单词词干),您可以构建以下简单查询
FT.SEARCH index "word"
您可能希望将搜索限制在特定文本字段中,而不是搜索所有文本字段。
FT.SEARCH index "@field: word"
自然语言中经常出现的词语,例如英语中的the
或a
,不会被索引,也不会返回搜索结果。您可以在停用词文章中找到更多详细信息。
以下示例搜索所有描述中包含“kids”一词的自行车。
FT.SEARCH idx:bicycle "@description: kids"
短语
短语是指句子、句子片段或一小组词语。您可以在精确匹配文章中找到有关如何查找精确短语的更多详细信息。
词前缀
您也可以搜索与给定前缀匹配的词语。
FT.SEARCH index "prefix*"
FT.SEARCH index "@field: prefix*"
重要
前缀至少需要两个字符长。以下示例演示了如何搜索品牌以“ka”开头的自行车。
FT.SEARCH idx:bicycle "@model: ka*"
词后缀
与前缀类似,也可以搜索具有相同后缀的词语。
FT.SEARCH index "*suffix"
您还可以在查询表达式中组合基于前缀和后缀的搜索。
FT.SEARCH index "*infix*"
以下示例查找所有以“bikes”结尾的品牌。
FT.SEARCH idx:bicycle "@brand:*bikes"
模糊搜索
模糊搜索允许您查找包含与搜索词语近似匹配的词语的文档。要执行模糊搜索,请用一对%
字符将搜索词语括起来。一对代表一个(莱文斯坦)距离,两对代表两个距离,三对代表最大距离,代表三个距离。
以下命令在所有文本字段中搜索,距离为一个。
FT.SEARCH index "%word%"
以下示例查找所有包含与拼写错误的词语“optamized”距离为一的词语的文档。您可以看到这匹配了“optimized”这个词。
FT.SEARCH idx:bicycle "%optamized%"
如果要将最大词语距离增加到两个,可以使用以下查询。
FT.SEARCH idx:bicycle "%%optamised%%"