笔记搜索

type
status
date
slug
summary
tags
category
icon
password
网址
思源笔记提供多种搜索笔记的方式。
搜索方式
使用场景
强度
灵活性
关键词搜索
快速查找
★☆☆
Query 语法
逻辑组合
★★☆
正则表达式
模式匹配
★★★
SQL 查询
结构化检索
★★★★☆
极高
API 调用
脚本/插件
可扩展
待整理

关键词搜索(简单快速)

  • 快捷键Ctrl + P 或点击左上搜索图标。如果需要搜索当前页面内容 ctrl+f
  • 默认行为:搜索内容、标题、别名、备注等字段,通过 SQLite FTS5 全文索引,中文效果优化
  • 基本语法
    • 输入空格分隔的词组,默认使用 AND
    • 支持 ANDORNOT 和括号组合高级逻辑:如 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 操作,不允许 UPDATEDELETE 等危险操作。
  • 操作对象包括外层表(如 blocks)和关联的辅助表(refsattributes 等)(链滴)。

▪️ 使用方式

  1. 新建一个嵌入块:输入 /嵌入块/embed,或使用 {{ }} 插入 SQL 查询模块
    1. 执行后将渲染查询结果块(查询框中仅渲染 blocks 表字段,但可与其他表联查

    ▪️ SQL 示例

    • 随机漫游
      • 随机提取当前文档中的一级标题块。
    • 多关键词定位文档
      • 列出同时含两关键字的文档列表。
    • 未完成任务汇总
      • 汇总全局未完成任务块。
    • 时间筛选(如 2021 年 8 月)
       

      ▪️ 表结构参考

      核心表包括:
      • blocks:记录所有内容块及其属性(id, root_id, content, markdown, type, created, updated 等);
      • refsattributesspansassets 等辅助表用于关联、标签、注释等

      接口/API 搜索(脚本 & 插件)

      可通过 HTTP API 方式调用:
      • method: 0=keyword, 1=query syntax, 2=SQL, 3=regex
      • 可设置分页、结果排序及块类型过滤
      • 适合集成自定义脚本、插件和外部工具。

      ✅ 推荐实践 & 注意事项

      • 性能提示:复杂 SQL 查询建议设置 LIMIT 或分页。
      • 索引更新:若检索结果不准确,可尝试 “重建索引”
      • SQL 安全:仅允许 SELECT 语句;写操作需避免执行。
      • 学习路径
          1. 熟悉键盘关键词与 Query Syntax。
          1. 逐步尝试嵌入 SQL 查询,掌握基础 SELECT ... WHERE ...
          1. 深入结构查询与联表使用(如标签属性、引用统计等)。
       
       
      上一篇
      收集箱
      下一篇
      日记
      Loading...
      文章列表
      思源笔记用户指南
      🍼新手引导
      ✏️基础操作
      ⛓️基础块
      🧬高级块
      📊数据库
      🛹特色功能
      🚀高级操作
      💎会员特权
      🖼️主题推荐
      🔌常用插件
      🔡代码片段
      💬交流区
      ❇️思源进阶