更新于 

附录: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 “开头的词的两个词范围内。


There is only one true heroism in the world: to see the world as it is, and to love it.
世界上只有一种真正的英雄主义,那就是在认清生活的真相后依然热爱生活。

京ICP备2023000976号-1