笔记搜索
type
status
date
slug
summary
tags
category
icon
password
网址
思源笔记提供多种搜索笔记的方式。
搜索方式 | 使用场景 | 强度 | 灵活性 |
关键词搜索 | 快速查找 | ★☆☆ | 低 |
Query 语法 | 逻辑组合 | ★★☆ | 中 |
正则表达式 | 模式匹配 | ★★★ | 高 |
SQL 查询 | 结构化检索 | ★★★★☆ | 极高 |
API 调用 | 脚本/插件 | — | 可扩展 |
待整理
关键词搜索(简单快速)
- 快捷键:
Ctrl + P
或点击左上搜索图标。如果需要搜索当前页面内容ctrl+f
- 默认行为:搜索内容、标题、别名、备注等字段,通过 SQLite FTS5 全文索引,中文效果优化
- 基本语法:
- 输入空格分隔的词组,默认使用
AND
。 - 支持
AND
、OR
、NOT
和括号组合高级逻辑:如foo NOT bar
表示含 foo 且不含 bar
- 大小写设置:默认忽略英文大小写,可到
设置 → 搜索 → 区分大小写
开启区分
查询语法(Query Syntax)
适合在全局搜索中使用,用于组合、逻辑过滤、排除等:
操作符 | 功能 |
foo OR bar | 匹配 foo 或 bar |
foo AND bar | 同时匹配 foo 与 bar |
foo NOT bar | 含 foo 且不含 bar |
(foo OR bar) AND baz | 组合逻辑查询 |
建议在查询结构复杂、关键词多时启用“查询语法”按钮,提升精准性。
正则表达式搜索
- 可通过 API 或插件形式使用。
- 在
fullTextSearchBlock
接口中设置method=3
可启用正则支持。
- 适用于批量匹配特定模式,如代码段、数学公式等。
SQL 高级查询(极致灵活)
▪️ 原理
- 直接读写内部 SQLite 数据库,支持标准
SELECT
查询,但仅限于SELECT
操作,不允许UPDATE
、DELETE
等危险操作。
- 操作对象包括外层表(如
blocks
)和关联的辅助表(refs
、attributes
等)(链滴)。
▪️ 使用方式
- 新建一个嵌入块:输入
/嵌入块
或/embed
,或使用{{ }}
插入 SQL 查询模块
- 执行后将渲染查询结果块(查询框中仅渲染
blocks
表字段,但可与其他表联查
▪️ SQL 示例
- 随机漫游:
随机提取当前文档中的一级标题块。
- 多关键词定位文档:
列出同时含两关键字的文档列表。
- 未完成任务汇总:
汇总全局未完成任务块。
- 时间筛选(如 2021 年 8 月):
▪️ 表结构参考
核心表包括:
blocks
:记录所有内容块及其属性(id
,root_id
,content
,markdown
,type
,created
,updated
等);
refs
、attributes
、spans
、assets
等辅助表用于关联、标签、注释等
接口/API 搜索(脚本 & 插件)
可通过 HTTP API 方式调用:
method
:0=keyword
,1=query syntax
,2=SQL
,3=regex
;
- 可设置分页、结果排序及块类型过滤
- 适合集成自定义脚本、插件和外部工具。
✅ 推荐实践 & 注意事项
- 性能提示:复杂 SQL 查询建议设置
LIMIT
或分页。
- 索引更新:若检索结果不准确,可尝试 “重建索引”
- SQL 安全:仅允许
SELECT
语句;写操作需避免执行。
- 学习路径:
- 熟悉键盘关键词与 Query Syntax。
- 逐步尝试嵌入 SQL 查询,掌握基础
SELECT ... WHERE ...
。 - 深入结构查询与联表使用(如标签属性、引用统计等)。
上一篇
收集箱
下一篇
日记
Loading...