Trilium Notes 高级搜索语法进阶:精准定位知识的15个技巧

Trilium Notes 高级搜索语法进阶:精准定位知识的15个技巧

【免费下载链接】trilium Build your personal knowledge base with Trilium Notes 【免费下载链接】trilium 项目地址: https://gitcode.com/gh_mirrors/tr/trilium

你是否还在为海量笔记中找不到关键信息而烦恼?是否曾因搜索结果杂乱无章而浪费时间? Trilium Notes 的高级搜索功能将彻底改变你的知识管理方式。本文将揭秘15个实用搜索技巧,帮你精准定位所需内容,让知识检索效率提升10倍。读完本文,你将掌握标签筛选、内容匹配、逻辑组合等高级技巧,轻松驾驭复杂知识体系。

一、标签搜索:快速定位分类内容

标签(Tag)是 Trilium Notes 中最常用的分类方式,通过标签搜索可以快速筛选特定类别的笔记。基本语法为 #标签名,例如 #project 可搜索所有标记为 "project" 的笔记。如果需要精确匹配标签值,可以使用 #标签名=值 的格式,如 #priority=high 搜索优先级为高的笔记。

相关实现代码可参考 spec/search/parser.spec.js 中的测试用例,该文件定义了标签比较表达式的解析逻辑。

二、否定搜索:排除不相关内容

当你需要排除特定标签的笔记时,可以使用否定语法 #!标签名。例如 #!draft 会排除所有标记为草稿的笔记。同样,对于关系属性,可以使用 ~!关系名 来排除相关内容,如 ~!reference 排除引用关系的笔记。

这一功能在 spec/search/parser.spec.js 中有详细测试,展示了如何解析属性否定表达式。

三、逻辑与:同时满足多个条件

要查找同时满足多个条件的笔记,可以使用 "and" 关键字或直接并列条件。例如 #work and #urgent#work #urgent 都会返回既标记为工作又标记为紧急的笔记。

解析逻辑与表达式的代码位于 spec/search/parser.spec.js,展示了如何处理显式和隐式的 AND 关系。

四、逻辑或:满足任一条件

当你需要查找满足多个条件中任意一个的笔记时,可以使用 "or" 关键字。例如 #work or #personal 会返回标记为工作或个人的笔记。

spec/search/parser.spec.js 中的测试用例展示了逻辑或表达式的解析方式。

五、括号分组:复杂条件组合

对于更复杂的搜索条件,可以使用括号进行分组。例如 (#work and #urgent) or (#personal and #important) 会返回紧急的工作笔记或重要的个人笔记。

相关实现可参考 spec/search/parser.spec.js,该测试展示了如何解析包含子表达式的复杂查询。

六、全文搜索:内容关键词匹配

Trilium Notes 支持对笔记内容进行全文搜索,只需输入关键词即可。默认情况下,搜索会匹配笔记标题和内容中的关键词。例如 hello 会返回所有包含 "hello" 的笔记。

全文搜索的实现逻辑在 spec/search/parser.spec.js 中有详细说明,展示了如何解析全文搜索令牌。

七、属性与全文混合搜索:精准定位

你可以将属性搜索与全文搜索结合使用,以获得更精确的结果。例如 #project hello 会返回标记为项目且内容包含 "hello" 的笔记。

spec/search/parser.spec.js 中的测试用例展示了如何解析这种混合表达式。

八、比较运算符:数值和日期比较

Trilium Notes 支持使用比较运算符(=、!=、>、<、>=、<=)进行数值和日期比较。例如 #score>90 会返回分数大于90的笔记,#created>2023-01-01 会返回2023年之后创建的笔记。

九、关系属性搜索:关联内容查找

对于关系属性,可以使用 ~关系名.属性=值 的格式进行搜索。例如 ~author.name=John 会返回作者姓名为 John 的笔记。

spec/search/parser.spec.js 中的测试用例展示了关系属性搜索的解析逻辑。

十、搜索结果排除已归档笔记

默认情况下,搜索结果会排除已归档的笔记。这一行为由 spec/search/parser.spec.js 中的代码控制,通过检查 "isArchived" 属性来实现。

十一、组合条件与全文搜索

你可以将属性条件与全文搜索结合使用,以实现更精准的定位。例如 #article AI 会返回标记为文章且内容包含 "AI" 的笔记。

spec/search/parser.spec.js 中的测试用例详细展示了这种组合搜索的解析方式。

十二、搜索语法错误处理

Trilium Notes 具有完善的错误处理机制,当输入无效的搜索语法时,会返回相应的错误提示。例如,如果你输入 #first = 这样不完整的表达式,系统会提示 "Misplaced or incomplete expression"。

错误处理的相关测试位于 spec/search/parser.spec.js

十三、标签存在性检查

如果你只想检查某个标签是否存在,而不关心其值,可以直接使用 #标签名 的格式。例如 #idea 会返回所有包含 "idea" 标签的笔记,无论标签值是什么。

spec/search/parser.spec.js 中的测试用例展示了如何解析属性存在性表达式。

十四、关系存在性检查

类似地,你可以检查关系属性是否存在,使用 ~关系名 的格式。例如 ~reference 会返回所有包含引用关系的笔记。

十五、复杂查询示例

综合运用以上技巧,你可以构建复杂的搜索查询,精确找到所需笔记。例如:

(#project and #urgent and #priority=high) or (#personal and #important) and (deadline>2023-12-31 or completed=false)

这个查询会返回满足以下条件的笔记:

  • 既是项目又是紧急且优先级高的,或者
  • 是重要的个人笔记,并且
  • 截止日期在2023年12月31日之后或未完成

通过掌握这些高级搜索技巧,你可以更高效地管理和检索你的知识笔记,充分发挥 Trilium Notes 的强大功能。建议将常用的复杂查询保存下来,以便日后快速使用。

希望本文对你有所帮助,如果你有其他好用的搜索技巧,欢迎在评论区分享!记得点赞收藏,关注获取更多 Trilium Notes 使用技巧。

【免费下载链接】trilium Build your personal knowledge base with Trilium Notes 【免费下载链接】trilium 项目地址: https://gitcode.com/gh_mirrors/tr/trilium

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值