全文搜索
执行全文搜索
全文搜索可在较长的文本中查找单词或短语。您可以在特定文本字段内或跨所有文本字段进行搜索。
本文概述了最相关的全文搜索功能。请在参考文档中查找有关所有全文搜索功能的更多详细信息。
本文中的示例使用具有以下字段的架构
字段名称 | 字段类型 |
---|---|
brand |
TEXT |
model |
TEXT |
description |
TEXT |
单个单词
要在所有文本字段中搜索单词(或词干),您可以构建以下简单查询
FT.SEARCH index "word"
您可能不想在所有文本字段中搜索,而只想将搜索限制在特定文本字段中。
FT.SEARCH index "@field: word"
在自然语言中非常常见的单词,例如英语中的the
或a
,不会被索引,并且不会返回搜索结果。您可以在停用词文章中找到更多详细信息。
以下示例搜索描述中包含单词“儿童”的所有自行车
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"
模糊搜索
模糊搜索允许您查找单词与搜索词大致匹配的文档。要执行模糊搜索,请用成对的%
字符包装搜索词。一对表示(Levenshtein)距离为一,两对表示距离为二,三对(最大距离)表示距离为三。
以下是使用距离为一跨所有文本字段搜索的命令
FT.SEARCH index "%word%"
以下示例查找包含与拼写错误的单词“optamized”距离为一的单词的所有文档。您可以看到它匹配单词“optimized”。
FT.SEARCH idx:bicycle "%optamized%"
如果您想将最大单词距离增加到两个,可以使用以下查询
FT.SEARCH idx:bicycle "%%optamised%%"