搜索语法
FOLD 如何解读搜索查询:词语、短语、AND、OR、排除、分组和正则表达式。
在哪里搜索
在 Mac 上,按下 ⌘F 会移到邮件列表上方的搜索栏。旁边的搜索语法按钮列出了常用的运算符,点按即可插入。搜索覆盖所有账户;选中某个文件夹时,可以用 搜索范围: 栏将范围缩小到此文件夹(在统一邮箱中则为当前视图)。
在 iPhone 和 iPad 上,搜索界面覆盖所有账户。命令面板也可以发起搜索。
词语和短语
每个词都必须匹配,并且是作为词的开头来匹配:invo 可以找到“invoice”。搜索不区分大小写,也不区分重音符号。
双引号可精确匹配短语:"quarterly report"。包含空格的运算符值需要加引号:
subject:"annual report" from:anna
带冒号的词会被解读为运算符;未知的运算符会导致“无法解析搜索查询。请检查括号和运算符。”要按字面搜索这样的词,请给它加上引号:"12:30"。
组合搜索词
- 空格表示 AND;大写的
AND作用相同。大写的OR表示二者之一。小写的and和or是普通词语。 - AND 的优先级高于 OR:
from:anna invoice OR from:ben表示“(来自 Anna 且包含 invoice)或来自 Ben”。括号可以改变这一点:(from:anna OR from:ben) invoice。 NOT不是关键字,而是普通词语。
在文本与 is: 或 before: 等过滤条件之间使用 OR 是可行的;非常庞大的组合会被拒绝,并提示“无法按此形式执行该搜索。请简化查询”。
用减号排除
在状态值前加减号会将其排除:-is:read 查找未读邮件,-is:flagged 查找没有旗标的邮件。
其他排除方式目前还不可用:
- 在词语、短语、
from:、to:、cc:、bcc:、subject:或body:前加减号,会使搜索出错失败。 - 在
before:、after:、size:、标签或正则表达式前加减号,减号会被忽略:该条件会被包含,而不是被排除。 -in:和-account:会被拒绝;在括号前加减号也不可靠。
正则表达式
正则表达式写在两个斜杠之间,只与主题和发件人进行匹配,从不与正文或收件人匹配:
/^Re: \[JIRA-\d+\]/
from:[email protected] /(?i)failed/
匹配区分大小写;在开头加上 (?i) 可忽略大小写。斜杠要写成 \/。无效的模式不起筛选作用。
搜索会查看哪些内容
FOLD 在你的设备上搜索一个全文索引(SQLite FTS5),其中包含每封邮件的主题、发件人、收件人和抄送。完整邮件只在你打开时才会下载,因此收到的邮件的正文尚未被索引:普通词语只能找到主题和地址,body: 只在少数情况下能找到邮件正文,例如你用 FOLD 发送的邮件的开头部分。处于 Fortress 模式的账户不会在索引中保留任何文本;只有 is: 或 before: 等过滤条件能找到其邮件。
结果顺序
结果按日期排序,最新的在前。搜索引擎中已有按相关性排序(BM25)的功能,但目前还无法在 App 中选择。
大小、标签和正则表达式过滤条件是在索引查找之后逐页应用的,因此对于范围很宽的查询,列表可能在显示所有匹配项之前就结束了;添加一个词或运算符即可缩小范围。