简易搜索 HZ 版: 简搜, 现已上线, 欢迎大家下载体验

image.png

原来的插件, 名字不好, 叫什么 plus, 感觉比简易搜索更高级一样, 有点欠打, 现在已下架, 不再维护

优化点

  1. 修改触发原理
    尽管体验上没有明显区别,但触发原理是完全推翻重来的
    之前的方案是增加一个新的搜索框作为输入框,然后将新输入框的内容转换到原有输入框中,以实现搜索功能。
    现在的实现方法是直接修改搜索请求的参数,从而达到相同目的。
    由于方案的不同,新的实现可以完美支持搜索历史查询条件等原插件无法处理的场景。
  2. 增加辅助信息显示框
    为了方便调试和确认搜索意图是否被正确解析,增加一个辅助信息显示框。
    这样可以有效提升开发与测试过程中的可视化信息,确保搜索功能的准确性。

readme

一个为思源笔记设计的增强型搜索插件,支持通过输入指令字符灵活控制搜索行为。


📣 写在前面

  • 本插件的核心逻辑与使用方式参考自 简易搜索插件
  • 若你从中受益,请感谢原作者:choyy,或通过爱发电支持他
  • 本人仅为二次开发与功能扩展,非原作者。如有问题请联系我(见下文),但感谢请归于原作者。
  • 致 choyy 大佬:感谢开源,侵删即改!

⚠️ 非常重要!

  1. 版本要求:本插件基于思源笔记 v3.2.1+ 新增的事件接口实现,最低需使用 v3.2.1 或更高版本
  2. 互斥警告:本插件与「简易搜索」插件完全互斥。若要使用本插件,请务必彻底卸载「简易搜索」(仅关闭开关无效)。
  3. 遇到问题?

🔧 使用方法

本插件兼容原「简易搜索」的全部功能,可无缝切换使用。

在搜索框中输入格式:
-<指令字符> <关键词>: 即可实现对搜索方式、块类型、路径等的精准控制。

例如:
-dhc 历史用户: 表示搜索包含“历史用户”的文档块(d)标题块(h)代码块(c)


✨ 功能详解

1. 指定搜索方式

当输入内容包含插件可识别的指令(如 -dh)时,会自动转换为 SQL 查询。
若想强制使用某种搜索模式,可通过以下字符指定:

字符 模式
w 关键字搜索
q 查询语法
s SQL 语句
r 正则表达式

✅ 指定后会自动勾选对应搜索模式,无需手动勾选。
❌ 若不希望触发插件解析,避免以 - 开头或使用未注册字符。

示例

  • -w-dh:以关键字模式搜索包含 -dh 的内容

    image.png

  • -q中国历史 NOT 苏联:使用查询语法排除“苏联” image.png

  • -sselect * from blocks where content like '%历史%';:执行原生 SQL image.png


2. 指定块类型(核心功能)

(1) 默认行为

未指定块类型时,沿用搜索页面当前勾选的类型。

image.png

(2) 自定义过滤

使用 - + 类型字符,精确筛选目标块类型。

例如:
历史 -dhi-dhi 历史: 表示搜索包含“历史”的文档块(d)标题块(h)列表项块(i),结果也按此顺序排序。

image.png

✅ 支持的块类型

可通过插件新增的帮助面板随时查看。

字符 类型说明
d 文档块(仅匹配文档名)
h 标题块(仅匹配标题文本)
支持等级过滤:h+ 数字 1-6,如 -h13 表示搜索 1, 3 级标题
p 段落块
c 代码块
b 引述块
L 大写 L:含外部链接的块(非标准类型)
l 小写 l:列表块(有序/无序/任务列表)
i 列表项块
s 超级块
t 表格块
m 数学公式块
o 小写 o: 未完成待办项(todo)
O 大写 O: 已完成待办项(done)

3. 指定搜索路径

(1) 默认路径

未指定时,沿用搜索面板当前选定的路径范围。

image.png

(2) 指定笔记本

  • a:全部已打开的笔记本
  • a + 数字(1-9):指定第 N 个打开的笔记本
    示例:-a13 → 在第 1 和第 3 个打开的笔记本中搜索

(3) 指定当前文档

  • k小写 k 仅当前文档
  • K大写 K 当前文档及其子文档

✅ 可与其他过滤条件组合使用。

示例

历史 -中苏 -kphi → 在当前文档中搜索含“历史”但不含“中苏”的段落(p)、标题(h)、列表项(i)块。

image.png

(4) 多层路径匹配(使用 /

通过 / 指定路径中的层级关键词(无需 - 前缀):

  • 无关键词时:仅搜索文档名称
    /笔记本1/文档1/文档2 → 匹配路径含 笔记本1,文档1 且文档名为 文档2 的文件。

    image.png

  • 有关键词时:按关键词搜索 + 路径匹配
    /文档1/文档3 中国历史 -hp → 搜索路径包含 文档1,文档3 且内容含“中国历史”的标题块(h)和段落块(p)。

    image.png

    image.png

🔍 注意

  1. 默认路径、指定笔记本(a)、当前文档(k/K)互斥,三者只能选其一;
  2. 多层路径可与上述任一路径条件组合使用(AND 关系)
  3. 路径为模糊匹配但顺序严格
    • /f1/f3 可匹配 /f1/f2/f3/ff11/f2/f3
    • 但不能匹配 /f3/f1

4. 其他高级功能

🔺 关键词排除

在关键词后添加 -+排除词,实现排除特定内容。

支持多关键词排除,并可与块类型组合。

示例

历史 -中苏 -美国 -dhi → 搜索含“历史”但不含“中苏”和“美国”的文档/标题/列表项块。

image.png

🔺 搜索范围扩展(-e)

使用 -e 实现跨文档联合搜索:

中国历史 -e → 搜索同时包含“中国历史”和“苏联历史” 的文档。

⚠️ 注意:

  • -e 不可与块类型过滤、当前文档搜索(k/K)共用;
  • 需配合“保存的查询条件”或手动输入第二个关键词使用。

image.png


🛠️ 其他功能与特性

💡 辅助信息显示框

搜索页面新增两个按钮和一个信息展示区:

方便调试与确认搜索意图是否正确解析。

image.png

  • 开关按钮:控制信息框的显示/隐藏
  • 帮助按钮:在信息框里, 展示所有支持的过滤语法 image.png
  • 信息显示框:实时显示经插件转换后的实际搜索语句 image.png

✅ 其他优化体验

  • 搜索框默认填充最近一次非空输入
  • 适配搜索历史记录:点击历史项仍可被插件识别
  • 适配查询条件:点击查询条件后仍可正常解析指令
  • 当无匹配文档时,禁用回车创建新文档,防止误操作
    image.png
  • 搜索结果排序规则:
    笔记本ID升序 → 路径名称升序 → 更新时间降序

🐞 已知问题(待处理)

  • 当前排序尚未完全优化,可能不符合预期
  • 扩展搜索 -e 适配不够完善
  • k/K 暂时无法使用

🍰 未来规划(画饼)

(以下功能暂无排期)

  • 打开搜索框填充上次内容时,若以 -d 等开头,光标仅选中空格后部分
  • 在搜索页面增加插件启用/禁用开关
  • 添加独立设置页面(配置默认行为、快捷键等)
  • 输入时实时更新下拉框,高亮匹配的搜索历史

📅 更新日志

[2025/08/01 23:34:49] release_v1.0

  • ✅ 初始发布版本,实现基础功能集
  • ✅ 支持块类型过滤、路径控制、搜索方式切换、关键词排除等核心功能
  • ✅ 提供辅助信息面板与帮助文档

🤝 贡献与反馈


感谢你使用本插件!愿你在知识管理的路上越走越远 🌿

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    28446 引用 • 119768 回帖
3 操作
HugZephyr 在 2025-08-04 16:10:28 置顶了该帖
HugZephyr 在 2025-08-04 11:22:07 更新了该帖
HugZephyr 在 2025-08-04 11:16:27 置顶了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 很简洁 不错

  • GavinKou 1 评论

    太好了,感谢这么强大的功能

    哈哈哈, 站在巨人的肩膀上搞得
    HugZephyr
  • Snipaste20250805072016.png

    SQL 搜索方式下不支持替换操作,请使用其他搜索方式

    使用本插件的路径功能的话,得到的搜索结果无法进行替换的操作。替换很常用,希望能支持一下。

    Snipaste20250805072131.png

    2 回复
  • leeyaunlong 5 评论

    增加一个 控制按时间(create, update)正反向 排序就好了.

    排序的效果,准备搞成按照页面选择的来。
    HugZephyr
    顺便提一嘴, 我其实之前考虑过加上控制排序, 但是剩下的字符已经不多了(9 个: fgjnuvxyz), 一种排序就有正反向两种情况, 使用单个字符不太合适, 如果用多个字符, 还不如直接在页面上选择
    HugZephyr
    @HugZephyr 使用简单搜索的目的就是 键盘流, 搞成点击没有一键到底爽.
    leeyaunlong
    @HugZephyr 使用 >(大于号, 最新的) < (小于号 , 旧的).
    leeyaunlong
    @leeyaunlong 键盘流深得我心, 感觉可以用 "ct>", "ut<" 这种
    HugZephyr
  • HugZephyr

    感谢反馈

    看起来思源本身就不支持 sql 替换, 暂时没什么好的思路

    如果真的要做, 只能手动模拟替换请求, 有点笨笨的, 而且既然思源不支持肯定是某种场景下无法处理

    替换功能会修改笔记内容, 我个人不是很想加 修改内容的功能.

  • SQL 是查询整个块,要替换的话也是替换掉整个块的,但一般的需求都是替换关键词

  • zoudusheng 1 评论

    希望支持拼音模糊搜索

    我也想要, 但是我搜了一下, 这个功能最好的方案, 应该是在原始数据库那里增加拼音列, 但是笔记本身就很庞大再加上拼音列不太现实, 暂时没什么其他的方案
    HugZephyr
  • flyu

    想要搜索标签是"唐诗",但是笔记内容中不含有"2025 年"的搜索,怎么写啊?

    1 回复
  • HugZephyr

    #唐诗# -2025年 -p

    备注: -p 换成自己想要搜索的块类型

    用法说明

    - 后跟想要排除的关键词

    本来不需要加 -p 的, 但是我刚刚试了一下, 发现: #唐诗# -2025年 会用思源原生的 查询语法 方式

    但是看起来这种方式不支持 # 号, 所以得加一下 -p , 让他用 sql 方式

    1 回复
  • flyu

    按这个搜索提示“未找到相关内容”,我用 SELECT * FROM blocks WHERE tag LIKE '%#唐诗#%' AND CONTENT not like '%2025 年 %'的 SQL 语句也无法找到相关内容,单独搜索#唐诗#会有内容,单独搜索 2025 年也会有内容,标签和内容一起搜索"#唐诗# 2025 年"是可以出现内容的,但是搜索"#唐诗# -2025 年 -p"就没有内容,用原生搜索也这样,不知道是不是思源笔记哪里设置问题。

请输入回帖内容 ...