笔记搜索

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

先选哪种搜索方式

搜索方式
适合场景
示例
注意事项
关键字
快速查找标题、正文和常用块属性
同步Docker反向链接
结果过多时,增加关键词、限制路径或筛选块类型。
查询语法
多个关键词的包含、排除、组合查询
foo OR barfoo 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 任意一个”,切换到“查询语法”会更准确。
  • 如果发现重复结果,检查是否把容器块纳入了搜索范围;启用容器块后可能带来重复命中。

查询语法

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

正则表达式搜索

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

SQL 搜索

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

搜索资源文件内容

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

API 和插件调用

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

搜不到或结果不准时

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

推荐学习路径

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

参考资料

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