附录:DevonThink搜索语法
搜索词的大小写
所有的搜索词都是不分大小写的。如果你愿意,你可以在查询中对专有名词使用大写字母,但DevonThink在解释查询时将忽略大小写。
关键词的先后顺序
搜索词和相关运算符将从左到右解释,除非通过将查询的部分内容包含在括号内进行修改。
GUI 上的搜索条件
在 DevonThink 中,搜索基本都是大小写不敏感的,几个搜索选项含义也非常简单:
- Search for:将搜索范围限定到所有信息、文档内容、来源、评论等;
- In Selection: 只在选定的文档内搜索;
- Prefix while Typing:勾选时,搜索「econ」,返回结果里会包括「economy」和「economic」;
- Ignore Diacritics: 忽略分音符。勾选时,输入「dejavu」也能搜到「déjà vu 」。
控制符
通配符
我们可以用匹配一个、多个或一系列字符的通配符来替换单词的一部分。
- ?: 准确匹配一个字符。
- *: 匹配没有,一个,或多个字符。
- [a-b]: 匹配a到b范围内的一个字符。
- [abc…] 或 [a|b|c|…]。 匹配给定字符列表中的一个字符。
- [^…]: 匹配一个不包含在给定列表或范围内的字符。
布尔运算符
操作符(通常称为布尔操作符)是为搜索查询中的术语建立逻辑规则的单词或符号。如果没有给出运算符,DevonThink默认会推断出AND。可用的布尔运算符是:
- term1 AND term2: 包含term1和term2
- term1 BUT term2: 包含搜索词1和术语2
- term1 OR term2: 包含term1或term2
- term1 XOR term2: 包含term1或term2,但不包含两者
- term1 EOR term2: 包含term1或term2,但不包含两者
- NOT term: 不包含term
- “term1”:包含term1的字串,完全以这种形式出现
除了经典的布尔运算符,DevonThink还使用了一些通常在高端数据库中出现的运算符。使用这些运算符来替代AND和 “引号”,以微调查询。
- term1 OPT term2:term1是必需的,term2是可选的。如果term2也被找到,那么找到的文件在搜索结果中的排名会更高。
- term1 NEAR term2:term1在term2之前或之后出现10个字或更少。
- term1 NEAR/n term2:term1在term2之前或之后出现n个或更少的字。
- term1 BEFORE term2:term1出现在term2之前。
- term1 BEFORE/n term2: term1出现在term2之前n个或更少的字数。
- term1 NEXT term2:term1出现在term2之前(BEFORE/1的快捷键)。
- term1 NEXT/n term2:term1出现在term2之前n个或更少的单词(BEFORE/n的同义词)。
- term1 AFTER term2:term1出现在term2之后。
- term1 AFTER/n term2:term1出现在term2之后n个或更少的词。
- ~term1: 包含term1,也作为一个词的一部分。
为方便起见,其中一些运算符也可以用常用的符号来缩写:
- AND: &, &&, +
- IOR: |, ||
- XOR: ^, ^^
- NOT: !, -
操作符优先级
操作符的评估优先级如下:
括号 > 短语/连字符 > (NOT) BEFORE/AFTER/NEAR/NEXT > NOT > AND/OR/XOR/EOR
具有相同优先级但没有括号的搜索词从左到右进行评估。
日期比较运算符
要比较智能组中的日期,可使用以下运算符:
- < date: 匹配在日期之前创建/编辑/查看的项目。
- <= date: 匹配在日期之前或当日创建/编辑/查看的项目。
- >= date: 匹配在日期之后或当日创建/编辑/查看的项目。
- > date: 匹配在日期之后创建/编辑/查看的项目。
留空处理
由非空分隔符(例如,page_id)连接的单词被视为放入 “引号 “的短语。由连字符“-”隔开的词被处理为word1word2或 “word1 word2”。例如:page-index或page_id,被处理为“pageindex”或“page id”
由点分隔的字符被认为是缩写,因此像由连字符分隔的单词一样处理,例如,搜索词“t.a.t.u”等于 “t a t u” 或tatu。
示例
通过使用上面列出的任何或所有运算符和规则,都可以创建复杂的查询,找到你要找的确切信息。下面是一些显示如何使用运算符的查询实例。
Example:Devonian Dinosaurs
该查询查找所有包含 “devonian “和 “dinosaurs “的文件。
Example: (Steve NEAR Jobs) AND iMac BUT NOT MacBook OPT Pro
该查询寻找包含 “Steve “和 “Jobs “这两个词的文件,这两个词之间的距离不超过10个字,以及 “iMac”(相对于Steve和Jobs没有特定的位置),但不包含 “MacBook”。Pro “这个词不需要出现,但如果出现了,该文件在搜索结果列表中的排名就会提高。
Example: Paracetamol NEAR (~effect OR impact) AND ((side OR second*) NEAR/2 ~effect)
该查询查找含有 “Paracetamol “一词的文档,该词与以 “effect”(因此也包括 “effects”)或 “impact “开头的词相近(10个词以内)。此外,该文件还需要包含 “side “这个词或任何以 “second “开头的词,该词位于任何以 “effect “开头的词的两个词范围内。