📘 text
操作符
text
操作符用于使用您在索引配置中指定的分析器执行全文搜索。它用于在文档的全文字段中搜索单词或短语。
text
操作符使用 OR
操作符来组合搜索词。例如,如果您搜索 Joy of Cooking
,搜索将返回包含 Joy
、of
、Cooking
或它们组合的所有文档。
警告
这有时可能是您想要的结果,但也可能会返回大量不相关的结果。例如,那些包含单词 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。但是,如果您有一个或多个拼写错误,如 Alyse
、Alise
或 Allice
,您将找不到这本书。这时 maxEdits
选项就派上用场了。设置为 1 的 maxEdits,您即使有一个拼写错误也能找到这本书。
synonyms
属性
synonyms
属性允许您指定将在搜索中使用的同义词映射。例如,如果您搜索 car
,您可能也想找到包含 automobile
这个词的文档。您可以在索引配置中指定同义词映射,然后在搜索查询中使用 synonyms
属性来使用该映射。