跳转到内容

双引擎检索体系与搜索语法规范

在去中心化与端对端加密(E2EE)体系中,搜索面临巨大的技术挑战:服务端仅掌握加密后的密文与元数据,无法直接在后端数据库进行明文 SQL 模糊匹配。EpoCanvas 创新打造了独特的双引擎协同检索架构:既支持在客户端本地构建零知识全文本地索引,又支持基于 CSS Custom Highlight API 的页面无损视觉高亮与指令化快速跳转。


🏗️ 双引擎架构概览

用户在搜索框输入指令
┌───────────────────────┴───────────────────────┐
▼ ▼
[引擎 1: 设定与页面高亮引擎] [引擎 2: 零知识协同检索引擎]
- 纯客户端 TreeWalker 遍历 - 本地 IndexedDB 预解密文本库
- CSS Custom Highlight API - 结构化指令编译器 (AST 解析)
- 0 网络请求 · 0 延时 - 跨空间/跨频道漫游 (global:)
- 键盘快捷键高光游走 (n / N) - 密文元数据与服务端对齐

⚙️ 1. 设定页与页面原生视觉高亮引擎 (Settings Engine)

当用户处于各类配置面板(如常规设置、安全中心、系统集成、规则引擎等)时,搜索行为聚焦于设置项的秒级定位。

纯前端无损视觉高亮

  • 实现原理:利用现代浏览器原生 CSS Custom Highlight API(配合 DOM TreeWalker 深度遍历可视文本节点),直接在 DOM 树中建立选区并施加高亮着色,绝不破坏现有 HTML 结构,杜绝传统 innerHTML.replace 引发的组件重新挂载与事件监听失效。
  • 性能优势0 次网络请求、0 毫秒 API 延时,万字长文本耗时低于 3ms。
  • 平滑聚焦定位:匹配命中的目标项自动执行平滑居中滚动:
    element.scrollIntoView({ behavior: 'smooth', block: 'center' });

全域设定快速跳转 (all: / global:)

在设置搜索框中输入 all:2FAglobal:AI 时,弹出全局设置索引下拉层,横跨常规设置、安全中心、存储集成与多模型池所有模块,点击结果瞬间完成路由跳转与选项高亮展开。


🔍 2. 协同会话与画板结构化搜索语法 (Unified Syntax)

在主协作界面中,搜索框接收 UNIX 风格的结构化键值指令。多个指令以空格分隔,默认遵循 AND 交集逻辑。

A. 空间与频道范围限定 (Scope & Target)

指令格式说明与行为准则适用示例
in:#channel限定检索范围仅在指定的频道名称或 ID 内。in:#architecture 架构演进
space:name限定在特定工作空间(Space)下的所有子频道内。space:core 联邦规范
global:跨越当前选定空间,扩大至所有已加入空间与频道进行全域漫游。global:双棘轮密钥
is:dm仅检索与特定成员的一对一单聊私密会话 (Direct Messages)。is:dm @bob:epocanvas.com

B. 参与者与身份限定 (Author & Mentions)

指令格式说明与行为准则适用示例
from:@user检索特定发件人或协作者发布的事件。from:@alice:example.com
from:me检索当前登录账号本人发布的消息、评论或白板元素。from:me has:file
mentions:me检索直接 @提及 当前登录账号的通知与事件。mentions:me is:unread

C. 多媒体与内容类型过滤 (Content Types)

指令格式说明与行为准则适用场景
has:file检索包含可下载文件附件的消息。查找周报归档压缩包
has:image检索包含图片素材或嵌入图床资源的消息。检索设计草图与架构图
has:code检索包含 Markdown 代码块(如 ```ts)的讨论。追溯历史实现代码片段
has:canvas检索挂载了实时矢量画板协同图元的会话。查找产品交互头脑风暴画板

D. 时间范围限定 (Temporal Filters)

支持 ISO 8601 标准日期格式(YYYY-MM-DD):

  • after:2026-01-01:检索指定日期之后的事件。
  • before:2026-09-01:检索指定日期之前的历史记录。
  • 组合示例after:2026-08-01 before:2026-08-31 has:file,精确检索 8 月份发生的所有文件传输。

E. 标签与规则标记 (Labels & Tags)

  • tag:urgent:检索由流式规则引擎或人工标记了 urgent 标签的事件。
  • is:starred:检索已被标星收藏的关键讨论或画板。
  • is:pinned:检索各频道中固定的置顶公告与重要里程碑。

🔐 3. 零知识本地检索原理 (Zero-Knowledge Indexing)

为了在保护绝对隐私的同时实现毫秒级快速检索,EpoCanvas 采用了端侧离线解密索引架构:

服务端推送加密事件流 ──▶ 客户端 Web Worker 异步解密
写入本地 IndexedDB 检索缓存库
(向量化分词 + 倒排索引分词表)
用户键入搜索词 ──▶ 本地秒级召回结果并标红高亮
  1. 异步 Web Worker 分词:客户端在收到加密推送并在后台完成 Double Ratchet 解密后,通过 Dedicated Web Worker 对纯文本执行本地分词(中英文分词算法支持),构建轻量级倒排索引,不占用主 UI 渲染线程。
  2. 密钥与索引永不上云:所有明文词条仅存于客户端 IndexedDB 局部沙箱,服务端只能检索到事件哈希、发送时间戳与房间 ID 等匿名元数据,杜绝数据在传输或存储节点发生明文泄露。

⌨️ 4. 键盘高光导航与快速联动

在工作台任意界面按下快捷键,即可流畅操作检索组件:

快捷键动作行为
Cmd + K / Ctrl + K呼出全局搜索浮层,光标自动聚焦输入框
Enter确认检索,视图平滑跳转至第一个匹配结果
n在页面内部跳转至下一个高亮匹配项
N (Shift + n)在页面内部跳转至上一个高亮匹配项
Esc清除高亮标记并关闭检索下拉层