笔记搜索

思源笔记提供多层次的搜索能力:日常可以用全局搜索快速定位笔记,遇到复杂条件时可以切换到查询语法、正则表达式或 SQL;需要脚本和插件集成时,也可以调用搜索 API。

先选哪种搜索方式

搜索方式
适合场景
示例
注意事项
关键字
快速查找标题、正文和常用块属性
同步、Docker、反向链接
结果过多时,增加关键词、限制路径或筛选块类型。
查询语法
多个关键词的包含、排除、组合查询
foo OR bar、foo NOT bar
需要在搜索方式中切换到“查询语法”。空格默认表示 AND。
正则表达式
匹配固定格式、编号、日期、链接、代码片段
\d{4}-\d{2}-\d{2}
正则过宽会影响速度,建议配合路径和类型过滤。
SQL
按块表字段、时间、类型、任务状态做结构化检索
SELECT * FROM blocks ... LIMIT 20
适合高级用户;SQL 搜索方式不支持替换操作。
API
插件、脚本、外部工具调用思源搜索
POST /api/search/fullTextSearchBlock
SQL 模式需要管理员权限;普通场景优先使用界面搜索。

打开搜索

  • 全局搜索:使用默认快捷键 Ctrl/⌘ + P,或点击界面中的搜索入口。适合在整个工作空间里查找笔记块。
  • 当前文档搜索:使用 Ctrl/⌘ + F,只在当前打开的文档中查找文本。
  • 固定搜索:使用默认快捷键 Shift + Ctrl/⌘ + F,适合把搜索面板固定在工作区中持续筛选。
  • 搜索结果中可以用方向键浏览,用回车打开;也可以在预览区快速判断命中位置。

搜索面板里的常用过滤

  • 指定路径:点击搜索面板顶部的路径按钮,把范围限制到某个笔记本、文档或目录。
  • 包含子文档:在指定路径后,按需要启用子文档范围,避免只搜到当前层级。
  • 块级类型:只搜索文档块、标题、段落、列表、代码块等特定类型。全局搜索里的过滤会覆盖“设置”里的默认块级类型。
  • 块级属性:可以在“设置 → 搜索”中配置是否搜索命名、别名、备注等块级属性。
  • 区分大小写:在“设置 → 搜索 → 区分大小写”中开启后,相关搜索功能会区分英文大小写。
  • 搜索结果显示数:结果数量过大时会拖慢搜索;数据量较大时不要把该值设得太高。

关键字搜索

关键字是最常用的搜索方式,适合记得某个词、标题片段或短句时快速定位内容。
建议用法:
  • 先输入最有辨识度的词,而不是太泛的词。例如搜 双链 通常比搜 笔记 更快收敛。
  • 结果太多时,不要继续翻很久,优先增加第二个关键词或限制路径。
  • 如果想表达“包含 A 但不包含 B”“A 或 B 任意一个”,切换到“查询语法”会更准确。
  • 如果发现重复结果,检查是否把容器块纳入了搜索范围;启用容器块后可能带来重复命中。

查询语法

查询语法适合表达明确的逻辑条件。切换搜索方式为“查询语法”后,可以使用 AND、OR、NOT 和括号组合。
写法
含义
适合场景
foo bar
同时包含 foo 和 bar
多个关键词同时出现。
foo AND bar
同时包含 foo 和 bar
显式写出逻辑,便于阅读和保存。
foo OR bar
包含 foo 或 bar 任意一个
同义词、旧称和新称一起查。
foo NOT bar
包含 foo,但不包含 bar
排除噪声结果。
(foo OR bar) AND baz
先组合 foo/bar,再要求包含 baz
复杂主题检索。
"foo/bar"
把特殊字符包在英文双引号中
关键词中包含符号、斜杠、运算符等字符。
常见误区:
  • 在“关键字”方式下输入 OR、NOT,它们可能只是普通词;需要切换到“查询语法”。
  • 操作符建议使用英文大写,括号使用英文括号。
  • 如果你想搜索字面量 AND、OR、NOT,可以用英文双引号包起来。

正则表达式搜索

正则表达式适合查“形式”而不是查“固定词”。在搜索方式中切换到“正则表达式”后,可以输入正则模式。
常见例子:
匹配 2026-06-23 这类日期。
匹配 TODO 或 FIXME。
匹配以 http:// 或 https:// 开头的链接。
使用建议:
  • 先限制到某个笔记本或文档,再运行复杂正则。
  • 正则中的 .、*、?、[、] 等都有特殊含义,搜索字面量时需要转义。
  • 如果只是查多个词,优先使用查询语法;正则留给格式化内容。

SQL 搜索

SQL 适合按结构化字段查询,例如块类型、创建时间、更新时间、任务状态等。它常用于两类场景:
  • 搜索面板中切换搜索方式为 SQL,直接用 SQL 找块。
  • 在文档中插入嵌入块,用 SQL 动态展示查询结果。
基础示例:
查找最近更新的任务块:
查找同时包含两个关键词的文档:
注意事项:
  • 日常查询尽量加 LIMIT,避免一次返回太多结果。
  • SQL 搜索方式不支持替换操作,需要替换文本时请切回其他搜索方式。
  • 不熟悉表结构时,先从 blocks 表开始;常见字段包括 id、root_id、content、markdown、type、subtype、created、updated。
  • 不要把 SQL 搜索当作修改数据库的工具;用户指南中建议只编写查询型 SQL。

搜索资源文件内容

普通笔记搜索主要面向笔记块内容。如果要搜索附件或资源文件里的文字,请使用“搜索资源文件内容”入口。
适合场景:
  • 想在 PDF、Office 文档等资源文件中查找文字。
  • 明明记得内容在附件里,但普通笔记搜索没有结果。
  • 需要确认某个关键词是否出现在资源文件正文中。
排查建议:
  • 先确认资源文件本身能被提取出文本;扫描件图片可能需要 OCR 后才容易搜索。
  • 搜索资源文件内容和搜索笔记块是两个入口,不要混用。
  • 如果资源文件很多,先用更具体的关键词,避免搜索时间过长。

API 和插件调用

插件、脚本或外部工具可以调用搜索接口:
常用请求体示例:
method 的含义:
  • 0:关键字
  • 1:查询语法
  • 2:SQL
  • 3:正则表达式
接口返回结果中通常包含命中的块列表、命中块数量、命中文档数量、页数等信息。SQL 模式需要管理员权限;如果只是做普通搜索集成,优先使用关键字、查询语法或正则模式。

搜不到或结果不准时

按这个顺序排查,通常最快:
  1. 先清空路径限制,确认不是搜错笔记本或文档。
  1. 检查是否启用了“包含子文档”。只限定父文档时,可能不会覆盖你想搜的子文档。
  1. 检查块级类型过滤。只勾选标题时,自然搜不到正文段落。
  1. 检查搜索方式。逻辑查询要用“查询语法”,格式匹配要用“正则表达式”。
  1. 检查“设置 → 搜索”中的块级类型、块级属性、区分大小写、搜索结果显示数。
  1. 如果目标内容在附件里,改用“搜索资源文件内容”。
  1. 如果某些内容被配置为忽略搜索,需要调整忽略搜索规则。
  1. 如果索引疑似异常,可以在“设置 → 搜索 → 索引”中重建索引。重建期间可能占用资源,建议在不急用时操作。
  1. 如果全局搜索响应较慢,增加关键词、设置类型过滤或缩小路径范围。

推荐学习路径

  1. 先熟悉全局搜索、当前文档搜索、路径过滤和块类型过滤。
  1. 再学习查询语法,用 AND、OR、NOT 解决大部分复杂搜索。
  1. 需要查格式时学习正则表达式。
  1. 需要按块类型、时间、任务状态汇总时,再学习 SQL 和嵌入块。
  1. 需要自动化时,再使用搜索 API 或插件接口。

参考资料

上一篇
收集箱
下一篇
日记
Loading...
文章列表
思源笔记用户指南
🍼新手引导
✏️基础操作
⛓️基础块
🧬高级块
📊数据库
🛹特色功能
🚀高级操作
💎会员特权
🖼️主题推荐
🔌常用插件
🔡代码片段
💬交流区
❇️思源进阶