文本搜索

文本搜索旨在“开箱即用”,但了解可用的语法和功能可以帮助你更好地使用它。

引号

未加引号的搜索词将匹配包含所有这些词(顺序不限)的记录。可以用引号括起词语(或部分词语),以指定它们必须按给定顺序出现。例如,搜索 "fat cats and sad rats" 会返回包含该确切短语的结果,而搜索 fat cats and sad rats 可能会返回包含“rats and fat, sad cats”等短语的结果。

一个常见的用法是用引号搜索电影名并加上未加引号的年份,例如 "steamboat willie" 1928

顺序运算符

. 字符是指定词语顺序的另一种方式。例如,搜索 apple . orange 会返回包含 apple 紧跟 orange 的结果。

OR 运算符

| 字符是 OR 运算符。搜索会返回包含 | 两侧任一词语的结果。例如,搜索 apple | orange 会返回包含 appleorange 的结果。

否定运算符

! 字符是否定运算符。搜索会返回不包含 ! 后面词语的结果。例如,搜索 orange !apple 会返回包含 orange 且不包含 apple 的结果。

通配符后缀

* 字符可用作通配符后缀。搜索会返回以 * 前面的词语开头的结果。例如,搜索 appl* 会返回以 appl 开头的结果,如 appleapplicationappliance 等。

注意,通配符只能用作后缀,不能作为前缀或中缀。

括号

括号可用于控制运算符优先级。例如,搜索 "banana split" | (apple !toffee) 会返回包含短语 “banana split” 的结果,或包含 “apple” 但不包含 “toffee” 的结果。

规范化

搜索文本不区分大小写。上述未提及的任何标点符号都被视为空格。搜索索引和搜索词都会被规范化为 ASCII 字符(即搜索 cafe 会匹配包含 “café” 的记录,反之亦然)。这适用于所有语言,例如简体和繁体中文字符在搜索时可视为可互换。

语法校验

搜索查询解析器很宽容:任何字符串都是有效的文本搜索输入,解析器会尽力将上述语法应用于任何输入字符串。例如,如果你搜索 "Steamboat Willie(忘记闭合引号),搜索查询解析器仍会将其视为一个带引号的短语。