跳到主要内容

📘 text 操作符

text 操作符用于使用您在索引配置中指定的分析器执行全文搜索。它用于在文档的全文字段中搜索单词或短语。

text 操作符使用 OR 操作符来组合搜索词。例如,如果您搜索 Joy of Cooking,搜索将返回包含 JoyofCooking 或它们组合的所有文档。

警告

这有时可能是您想要的结果,但也可能会返回大量不相关的结果。例如,那些包含单词 of 的文档,很可能与您的搜索无关。

我们已经介绍了 path 属性,但 text 操作符还有其他可用的属性。

text 操作符的完整定义如下。更多详细信息可以在文档中找到。

{
$search: {
"index": <index name>, // 可选,默认为 "default"
"text": {
"query": "<search-string>",
"path": "<field-to-search>",
"fuzzy": <options>,
"score": <options>,
"synonyms": "<synonyms-mapping-name>"
}
}
}

让我们看看这些属性中的每一个。

fuzzy 属性

模糊搜索是一种允许您搜索与目标词相似的术语的技术。当用户在搜索查询中可能会拼写错误或拼写错误时,它非常有用。

fuzzy 属性有许多选项,您可以在文档中找到更多信息。现在,我们将重点关注 maxEdits 选项。MaxEdits 将指定可以进行的字符编辑的数量以找到匹配项。

例如,如果您搜索 Alice,您应该找到书 Alice in Wonderland。但是,如果您有一个或多个拼写错误,如 AlyseAliseAllice,您将找不到这本书。这时 maxEdits 选项就派上用场了。设置为 1 的 maxEdits,您即使有一个拼写错误也能找到这本书。

synonyms 属性

synonyms 属性允许您指定将在搜索中使用的同义词映射。例如,如果您搜索 car,您可能也想找到包含 automobile 这个词的文档。您可以在索引配置中指定同义词映射,然后在搜索查询中使用 synonyms 属性来使用该映射。