全文搜索

执行全文搜索

全文搜索可在较长的文本中查找单词或短语。您可以在特定文本字段或所有文本字段中搜索。

本文对最相关的全文搜索功能进行了很好的概述。有关所有全文搜索功能的更多详细信息,请参阅参考文档

本文中的示例使用具有以下字段的架构:

字段名称 字段类型
brand TEXT
model TEXT
description 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"

模糊搜索可让您查找包含与您的搜索词大致匹配的单词的文档。要执行模糊搜索,请用字符对包装搜索词%。一对字符表示 (Levenshtein) 距离为 1,两对字符表示距离为 2,三对字符(最大距离)表示距离为 3。

这是在所有文本字段中搜索距离为 1 的命令:

FT.SEARCH index "%word%"

以下示例查找包含与拼写错误的单词“optamized”距离为 1 的单词的所有文档。您可以看到,这与单词“optimized”匹配。

FT.SEARCH idx:bicycle "%optamized%"

如果要将最大单词距离增加到两个,可以使用以下查询:

FT.SEARCH idx:bicycle "%%optamised%%"
给此页面评分
返回顶部 ↑