Decentralization? We're still early!
課 5 的 7
In Progress

第五课 Trillium笔记的搜索与导航进阶

Brave 2026-02-03

当你的 Trilium 知识库积累到数百、数千甚至数万条笔记时,一个问题会变得越来越重要:

📌 如何在海量笔记中快速找到你需要的那一条?

好的知识管理不仅仅是"存进去",更重要的是能"取出来"。如果你找不到之前记录的知识,那它就等于不存在。

Trilium 提供了极其强大的搜索和导航系统,它不仅仅是简单的关键词匹配,还支持:

  • 🔍 全文搜索:在笔记内容中搜索
  • 🏷️ 属性搜索:按标签、关系、元数据筛选
  • 📐 正则表达式:复杂模式匹配
  • 🔀 模糊搜索:容忍拼写错误
  • 💾 保存搜索:将常用搜索保存为动态列表
  • ⌨️ 快捷导航:键盘操作快速跳转

本节课将全面讲解这些功能,让你成为 Trilium 搜索专家。


一、搜索基础

1.1 打开搜索

在 Trilium 中,有多种方式打开搜索:

方式操作说明
快捷键Ctrl+S最快速的方式
工具栏点击搜索图标 🔍可视化入口
命令面板Ctrl+K → 输入 "search"通过命令调用

1.2 搜索界面介绍

┌─────────────────────────────────────────────────────────────┐
│  🔍 搜索框                                                   │
│  ┌─────────────────────────────────────────────────────┐    │
│  │  输入搜索内容...                                     │    │
│  └─────────────────────────────────────────────────────┘    │
│                                                             │
│  搜索选项:                                                  │
│  ☑️ 搜索笔记内容      ☐ 仅搜索标题                          │
│  ☐ 包含归档笔记       ☐ 快速搜索模式                        │
│                                                             │
│  ─────────────────────────────────────────────────────      │
│                                                             │
│  搜索结果:                                                  │
│  📝 笔记标题 1                                              │
│     路径: 知识库 / 计算机 / ...                             │
│     ...匹配的内容片段...                                    │
│                                                             │
│  📝 笔记标题 2                                              │
│     路径: 项目 / 项目A / ...                                │
│     ...匹配的内容片段...                                    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

1.3 基本搜索类型

Trilium 会根据你输入的内容自动判断搜索类型

输入内容识别为示例
普通文本全文搜索Python 入门
# 开头标签搜索#book
~ 开头关系搜索~author
note. 开头笔记属性搜索note.title
包含特殊操作符高级搜索#year >= 2020

二、全文搜索

2.1 简单全文搜索

直接输入关键词,Trilium 会在笔记标题和内容中搜索:

Python                → 搜索包含"Python"的笔记
机器学习入门           → 搜索包含"机器学习入门"的笔记
HTTP 协议            → 搜索同时包含"HTTP"和"协议"的笔记

2.2 精确短语搜索

引号包围短语,进行精确匹配:

"machine learning"    → 精确搜索"machine learning"这个短语
"设计模式"            → 精确搜索"设计模式"

引号类型:Trilium 支持三种引号:

  • 双引号:"text"
  • 单引号:'text'
  • 反引号:`text`

2.3 排除关键词

使用减号 - 排除包含某关键词的笔记:

Python -Django        → 搜索包含"Python"但不包含"Django"的笔记
笔记 -测试            → 搜索包含"笔记"但不包含"测试"的笔记

2.4 搜索策略:渐进式匹配

Trilium 使用智能的两阶段搜索策略

┌─────────────────────────────────────────────────────────────┐
│                   Trilium 搜索策略                           │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  第一阶段:精确匹配                                          │
│  ├── 处理 90%+ 的搜索请求                                   │
│  ├── 几乎即时返回结果                                       │
│  └── 要求关键词完全匹配                                      │
│                                                             │
│  第二阶段:模糊回退(自动触发)                               │
│  ├── 当精确匹配结果少于 5 个时触发                          │
│  ├── 添加模糊匹配,容忍拼写错误                              │
│  └── 精确匹配结果始终排在模糊匹配之前                        │
│                                                             │
│  示例:搜索 "project"                                       │
│  ├── 先返回精确包含 "project" 的笔记                        │
│  └── 然后返回包含 "projects"、"projection" 的笔记           │
│                                                             │
└─────────────────────────────────────────────────────────────┘

三、属性搜索

属性搜索是 Trilium 最强大的搜索功能,允许你按标签、关系和笔记元数据精确筛选。

3.1 标签搜索

📌 搜索有某标签的笔记

#book                 → 所有带 #book 标签的笔记
#project              → 所有带 #project 标签的笔记
#important            → 所有带 #important 标签的笔记

📊 搜索标签值等于某值

#year = 2024          → 年份为 2024 的笔记
#status = reading     → 状态为"阅读中"的笔记
#author = "王小波"     → 作者为"王小波"的笔记(值含空格时用引号)

🔢 数值比较

#year >= 2020         → 2020年及以后的笔记
#year < 2000          → 2000年以前的笔记
#rating >= 4          → 评分 ≥ 4 的笔记
#progress > 50        → 进度 > 50% 的笔记

支持的比较操作符

操作符含义示例
=等于#year = 2024
!=不等于#status != archived
>大于#rating > 3
>=大于等于#year >= 2020
<小于#year < 2000
<=小于等于#priority <= 2

📝 包含匹配

#title *= Python      → 标题包含"Python"的笔记
#content *= 机器学习   → 内容包含"机器学习"的笔记
#tags *= Web          → tags 标签值包含"Web"的笔记

包含操作符

操作符含义示例
*=包含(大小写敏感)#title *= Python
*=*包含(大小写不敏感)#title *=* python

3.2 关系搜索

🔗 搜索有某关系的笔记

~author               → 所有有 ~author 关系的笔记
~template             → 所有应用了模板的笔记
~relatedTo            → 所有有 ~relatedTo 关系的笔记

🎯 搜索关系指向特定笔记

~author.title = "王小波"              → ~author 关系指向标题为"王小波"的笔记
~template.title *= "读书"             → 模板名称包含"读书"的笔记

🔀 关系链搜索

Trilium 支持多级关系链搜索,这是极其强大的功能:

~author.relations.son.title = "Christopher Tolkien"

解释:
├── ~author:有 author 关系的笔记
├── .relations.son:这个 author 笔记有 son 关系
└── .title = "...":son 指向的笔记标题匹配

用途:查找作者的儿子是 Christopher Tolkien 的所有书籍

3.3 笔记属性搜索

使用 note. 前缀搜索笔记的内置属性:

属性说明示例
note.title笔记标题note.title *= Python
note.content笔记内容note.content *= TODO
note.type笔记类型note.type = code
note.mimeMIME 类型note.mime = text/html
note.dateCreated创建日期note.dateCreated >= 2025-01-01
note.dateModified修改日期note.dateModified >= TODAY-7
note.contentSize内容大小note.contentSize > 10000
note.isProtected是否加密note.isProtected = true
note.noteId笔记 IDnote.noteId = abc123
note.parentCount父笔记数量note.parentCount > 1(查找克隆笔记)

📅 日期搜索示例

note.dateCreated >= 2025-01-01
→ 2025年1月1日及以后创建的笔记

note.dateModified >= TODAY-7
→ 最近7天修改过的笔记

note.dateCreated >= MONTH
→ 本月创建的笔记

日期关键词

关键词含义
TODAY今天
TODAY-NN 天前
WEEK本周开始
MONTH本月开始
YEAR今年开始

四、高级搜索语法

4.1 布尔表达式

使用 ANDORNOT 组合多个条件:

#book AND #rating >= 4
→ 评分 ≥ 4 的书籍

#project AND (#status = active OR #status = pending)
→ 状态为 active 或 pending 的项目

#book AND NOT #status = archived
→ 未归档的书籍

括号分组

~author.title *= Tolkien OR (#publicationDate >= 1954 AND #publicationDate <= 1960)
→ 作者包含 Tolkien,或出版日期在 1954-1960 之间的笔记

⚠️ 注意:以括号开头的表达式需要在前面加上分隔符(#~),否则 Trilium 可能无法正确解析。

4.2 正则表达式搜索

使用 %= 操作符进行正则表达式匹配:

#publicationYear %= "19[0-9]{2}"
→ 出版年份为 1900-1999 的笔记

note.content %= "\\d{2}:\\d{2} (PM|AM)"
→ 内容中提及时间(如 "10:30 AM")的笔记

#email %= "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}"
→ 有有效邮箱格式的笔记

⚠️ 注意:正则表达式中的反斜杠需要转义,写成 \\

4.3 模糊搜索

当你不确定精确拼写时,可以使用模糊搜索:

#title ~= trilim
→ 模糊匹配,即使拼错 "trilim" 也能找到 "Trilium"

#content ~* progra
→ 模糊包含,匹配 "program"、"programmer"、"programming" 等

模糊搜索操作符

操作符含义示例
~=模糊精确匹配#title ~= trilim
~*模糊包含匹配#content ~* progra

4.4 排序和限制

#book orderBy:#rating desc
→ 按评分降序排列的书籍

note.dateModified >= TODAY-30 orderBy:dateModified desc
→ 最近30天修改的笔记,按修改时间降序

#project limit:10
→ 只返回前10个项目

#book orderBy:#rating desc limit:5
→ 评分最高的5本书

排序选项

语法说明
orderBy:#attribute按标签值排序
orderBy:dateCreated按创建时间排序
orderBy:dateModified按修改时间排序
orderBy:title按标题排序
desc降序(默认升序)
limit:N限制返回数量

4.5 特殊字符转义

如果搜索内容包含特殊字符(#~. 等),需要转义:

\#hashtag             → 搜索文本 "#hashtag"(而非标签)
C\+\+                 → 搜索 "C++"
note\.js              → 搜索 "note.js"

五、保存搜索(Search Notes)

5.1 什么是保存搜索?

保存搜索(Search Note) 是一种特殊的笔记类型,它存储一个搜索查询,并动态显示所有符合条件的笔记。

这就像一个智能文件夹动态播放列表——不需要手动维护,内容自动更新。

┌─────────────────────────────────────────────────────────────┐
│                    保存搜索 vs 普通文件夹                     │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  📁 普通文件夹"正在阅读的书"                                  │
│  ├── 需要手动添加/移除笔记                                   │
│  ├── 可能忘记更新                                           │
│  └── 容易与实际情况不一致                                    │
│                                                             │
│  🔍 保存搜索"正在阅读的书"                                    │
│  ├── 搜索条件:#book #status=reading                        │
│  ├── 自动显示所有符合条件的笔记                              │
│  ├── 新增/修改笔记后自动更新                                 │
│  └── 始终与实际情况一致                                      │
│                                                             │
└─────────────────────────────────────────────────────────────┘

5.2 创建保存搜索

🖱️ 方法一:从搜索结果保存

  1. 执行搜索
  2. 点击搜索结果页面的 "Save search" 按钮
  3. 选择保存位置

🖱️ 方法二:手动创建

  1. 创建新笔记
  2. 将笔记类型改为 "Search"
  3. 在笔记内容中输入搜索查询

5.3 实用保存搜索示例

创建一个 "智能视图" 文件夹,存放各种保存搜索:

📁 🔍 智能视图
│
├── 🔍 正在阅读的书
│   └── 搜索:#book #status=reading
│
├── 🔍 高优先级任务
│   └── 搜索:#todo #priority=high
│
├── 🔍 本周创建的笔记
│   └── 搜索:note.dateCreated >= WEEK orderBy:dateCreated desc
│
├── 🔍 最近修改的笔记
│   └── 搜索:orderBy:dateModified desc limit:20
│
├── 🔍 被克隆的笔记
│   └── 搜索:note.parentCount > 1
│
├── 🔍 大型笔记(>10KB)
│   └── 搜索:note.contentSize > 10000 orderBy:contentSize desc
│
├── 🔍 未分类笔记
│   └── 搜索:note.parentCount = 1 AND NOT #archived
│
├── 🔍 今年读完的书
│   └── 搜索:#book #status=finished #finishedDate >= YEAR
│
└── 🔍 所有模板
    └── 搜索:#template

5.4 保存搜索的高级用法

📊 作为仪表盘

你可以创建一个"仪表盘"笔记,嵌入多个保存搜索的结果:

# 📊 我的仪表盘

## 🔥 高优先级任务
{{搜索:#todo #priority=high}}

## 📚 正在阅读
{{搜索:#book #status=reading}}

## 📝 最近修改
{{搜索:orderBy:dateModified desc limit:5}}

💡 提示:可以使用 ~renderNote 关系或 Trilium 的内容引用功能嵌入搜索结果。


六、快速导航

6.1 快速跳转(Jump to Note)

快速跳转是 Trilium 中最常用的导航方式:

快捷键功能
Ctrl+J打开快速跳转对话框

在快速跳转对话框中:

  • 输入笔记标题的任意部分
  • 支持模糊匹配
  • 最近访问的笔记会优先显示
输入 "py入" → 匹配 "Python 入门教程"
输入 "tri进" → 匹配 "Trilium 进阶技巧"

6.2 笔记树导航快捷键

在笔记树中,可以用键盘快速导航:

快捷键功能
/ 上下移动选中笔记
折叠当前笔记(有子笔记时)/ 跳转到父笔记(无子笔记时)
展开当前笔记
Home跳转到树的顶部
End跳转到树的底部
Ctrl + .滚动到当前笔记(当视图偏移时)
Alt + -折叠当前笔记的整个子树

6.3 笔记操作快捷键

快捷键功能
Ctrl + ↑ / Ctrl + ↓在列表中上下移动笔记位置
Ctrl + ←将笔记上移一个层级(变为兄弟的兄弟)
Ctrl + →将笔记下移一个层级(变为上一个兄弟的子笔记)
Ctrl + C克隆笔记
Ctrl + X剪切笔记(用于移动)
Ctrl + V粘贴(克隆或移动)
Del删除笔记

6.4 多选操作

操作方法
添加单个笔记到选择Alt + 点击
选择范围Shift + 点击(从当前到点击位置)
全选子笔记Ctrl + A(在笔记树中)

6.5 编辑器快捷键

在笔记编辑器中:

快捷键功能
Ctrl + Shift + ↑/↓从编辑器跳转到笔记树上/下一个笔记
Ctrl + K插入/编辑链接
Ctrl + L快速链接到另一个笔记
Ctrl + .滚动笔记树到当前笔记

6.6 标签页管理

Trilium 支持多标签页,像浏览器一样:

快捷键功能
Ctrl + T新建标签页
Ctrl + W关闭当前标签页
Ctrl + Tab切换到下一个标签页
Ctrl + Shift + Tab切换到上一个标签页
Ctrl + 数字切换到第 N 个标签页

6.7 其他实用快捷键

快捷键功能
Alt + O打开/创建今日日记
Alt + A打开属性面板
Ctrl + S打开搜索
Ctrl + J快速跳转
F5刷新/重载
Ctrl + Shift + S强制保存
Ctrl + E最近修改的笔记

七、搜索工作流最佳实践

7.1 建立标签体系

高效搜索的前提是一致的标签体系。建议:

📋 标签命名规范

类型标签(单数形式):
#book, #article, #project, #person, #meeting

状态标签:
#status = reading | finished | archived | active | pending

优先级标签:
#priority = high | medium | low

时间标签:
#year = 2024
#quarter = Q1
#finishedDate = 2025-01-15

7.2 搜索场景速查表

我想找...搜索语句
所有书籍#book
正在读的书#book #status=reading
评分≥4的书#book #rating>=4
王小波的书#book #author=王小波~author.title=王小波
2024年读完的书#book #finishedDate>=2024-01-01 #finishedDate<2025-01-01
最近7天修改的笔记note.dateModified>=TODAY-7
本月创建的笔记note.dateCreated>=MONTH
包含"TODO"的笔记note.content*=TODO
被克隆的笔记note.parentCount>1
所有代码笔记note.type=code
标题包含"Python"的笔记note.title*=Python

7.3 搜索组合技巧

🎯 场景:年度阅读回顾

#book #status=finished #finishedDate>=2024-01-01 #finishedDate<2025-01-01 orderBy:#rating desc

🎯 场景:找到需要整理的笔记

note.dateCreated>=TODAY-30 AND note.dateModified<=TODAY-7 AND NOT #archived
→ 最近30天创建但超过7天未修改的笔记(可能需要整理)

🎯 场景:找到所有与某人相关的内容

~relatedTo.title=张三 OR ~author.title=张三 OR ~attendees.title*=张三
→ 所有与"张三"相关的笔记

八、本节小结

📝 核心要点回顾

  1. 全文搜索
    • 直接输入关键词搜索标题和内容
    • 使用引号进行精确短语匹配
    • 使用 - 排除关键词
  2. 属性搜索
    • #label 搜索标签
    • ~relation 搜索关系
    • note.property 搜索笔记属性
    • 支持比较操作符:=, !=, >, >=, <, <=, *=
  3. 高级搜索
    • 布尔表达式:AND, OR, NOT
    • 正则表达式:%=
    • 模糊搜索:~=, ~*
    • 排序和限制:orderBy, limit
  4. 保存搜索
    • 将搜索查询保存为动态更新的笔记列表
    • 适合创建"智能视图"
  5. 快捷键导航
    • Ctrl+J:快速跳转
    • Ctrl+S:搜索
    • 方向键:笔记树导航
    • Alt+O:今日日记

🎯 实践检查清单

完成本节学习后,请确认你已经:

📚 参考资源

回复