跳转到主要内容

使用 RemNote 查询语言进行搜索

查询语言允许你从数据库中选择符合特定条件的条目。

作者:Nova Nightfall

RemNote 查询语言用于描述你希望在搜索传送门中显示的条目。与使用标准搜索(例如,在 Ctrl+P 搜索或引用搜索中)相比,你可以使用各种各样的条件,并且更加具体。

查询构建器

有两种编写查询的方法:直接输入文本,以及使用查询构建器,它提供了一个用于设计查询的图形界面。你可以通过单击搜索门户旁边的过滤器图标来打开查询构建器。

你可以在使用查询构建器和随时在文本框中直接编辑搜索查询之间来回切换。新用户应该从查询构建器开始。

查询过滤器和运算符

查询构建器中的选项以粗体显示;手动编写查询时使用的语法以等宽字体显示。

连接

在这里,SomeNote 表示使用 [[ 或 @ 插入到查询中的条目引用。(如果你使用的是查询构建器,则不必键入 [[;当你单击右侧下拉列表时,引用搜索将自动开始)

  • Has Reference To (包含引用) (SomeNote): 匹配引用了 SomeNote 的条目。

  • Is Tagged With (被打上标签) (#SomeNote): 匹配被 SomeNote 打上标签的条目,以及被 SomeNote 所打上标签的任何条目标记的条目(标签继承)。

  • Is Directly Tagged With (被直接标记) (!#SomeNote): 匹配被 SomeNote 打上标签的条目(无标签继承)。

  • Documents That Have (包含以下内容的文档) (@SomeNote): 匹配包含 SomeNote 的文档,可以是直接后代或传送门。(不包括包含对 SomeNote 的引用的文档;如果你需要此行为,请尝试下面的 SomeNote。)

  • In Document (在文档中) (^SomeNote): 匹配如果你打开文档 SomeNote,你可以看到的条目。这包括固定传送门中的条目,但不包括搜索门户中的条目,并且不包括作为已折叠条目的子项的条目。

  • Descendant of (的后代) (^^SomeNote): 匹配作为 SomeNote 的直接后代的条目。这不包括门户中的条目,但包括作为已折叠条目的子项的条目。

  • Any Connection To (任何连接) (*SomeNote): 匹配通过除父/子(引用、标签等)之外的任何类型的链接连接到 SomeNote 的条目。

增强功能

增强功能在查询中的行为不同于标签。与其按名称引用,不如使用带引号的短代码来标识它。有关其的定义及使用方法,请参见增强功能。

  • Has Powerup (拥有增强功能) (hasPower "d", hasPowerup "t"): 匹配拥有指定增强功能的条目。

  • Has Powerup With Slot Value (拥有特定槽位值的增强功能) (hasPowerupSlotValue "t" "s" "Finished"): 匹配拥有指定增强功能且其某个槽位具有特定值的条目。三个参数分别是增强功能、槽位和数值。

可搜索的增强功能及其代码:

代码

增强功能

d

每日文档

e

稍后编辑

t

待办

o

文档

g

标签组

rt

已从回收站恢复

拥有特定槽位值的增强功能目前可与其中两个一起使用:

  • Todo(待办)(t),其状态为"Finished"或"Unfinished"。例如,hasPowerupSlotValue "t" "s" "Unfinished" 匹配所有尚未完成的 todo。

  • Document(文档)(o),其状态为"Draft","Finished"或"Pinned"。

注意:RemNote 已移除草稿(Draft)和已完成(Finished)文档状态,且不再支持。它们仍在已经使用这些状态的知识库中有效,因此如果你以这种方式组织文档,仍可继续使用,这些查询仍能找到它们。在其他地方,无法设置这两种状态,搜索其中任何一种都会返回空。

杂项

  • Has Text (包含文本) ("text"): 匹配在引号内包含文本字符串的条目。

    • 出于性能原因,文本“包含”搜索以某种特殊的方式工作。你通常可以将“包含”视为“包含一个以搜索文本开头的单词”。

      细节——只有在阅读上述内容后,你的包含搜索中遇到意外行为时才阅读此内容*:RemNote 首先搜索所有包含以你键入的至少一个“contains”字符串开头的单词的条目。与“starts with”搜索相比,此匹配在条目中任何单词的开头,而不仅仅是在整个条目的开头。随后,如果你在同一个搜索查询中有多个“包含”过滤器,RemNote 会再次遍历它在第一遍中找到的所有条目,并且仅显示那些将所有“contains”过滤器作为子字符串包含的条目;这次它不必固定在单词的开头。

  • Has Bullet Type (具有条目类型) (remType:concept, remType:descriptor, remType:none): 匹配作为概念、描述符或两者都不是的条目。

  • ~: 波浪号是一个有效的表达式,它永远不会匹配任何内容。在编写查询时,你可以将其用作稍后要插入的表达式的占位符。

布尔运算符

可以使用 and、or 和 not 将上述搜索词组合成表达式,并使用查询组(在可视化查询构建器中)或括号(在手动编写的查询中)进行分组。在这里,X、Y 和 Z 表示上面列表中的连接或杂项搜索词。

在手动编写的查询中,and 和 or 具有相同的优先级,并从左到右进行评估。not 的优先级高于两者。

  • X and Y: 匹配同时匹配条件 X 和 Y 的条目。

  • X or Y: 匹配匹配条件 X 或条件 Y 或两者都匹配的条目。

  • not X: 匹配不匹配条件 X 的条目。

  • X and (Y or Z): 匹配同时匹配 X 和 Y 或 Z 的条目。

  • X and not Y or Z: 匹配匹配 X 但不匹配 Y 的条目;或匹配 Z 的条目,无论它们是否匹配 X 或 Y。

这是否解答了您的问题?