1.9 KiB
Raw Permalink Blame History

id, title, type, feature, scope, locale, aliases, related_tools, related_pages, prerequisites, negative, last_verified
id title type feature scope locale aliases related_tools related_pages prerequisites negative last_verified
search.concept 全局搜索是什么 concept search end-user zh
全局搜索
搜索是什么
总搜索
怎么搜东西
在哪里搜
全局搜索不会跨用户:只能搜到当前账号有权限看到的内容
关键词为空时不会触发搜索,必须输入至少 1 个字符
单次搜索每类对象最多返回 50 条(默认 20 条)
v1.7.90

全局搜索是什么

定义

全局搜索是 DooTask 内的统一检索入口,能够一次性跨 5 类对象查找内容:联系人、项目、任务、文件、消息。对应后端 api/search/* 5 个接口,统一在 SearchController 实现。

5 类搜索对象

  • 联系人contact按昵称 / 邮箱 / 个人简介 / 技能标签匹配用户
  • 项目project按项目名 / 项目描述匹配当前用户可访问的项目
  • 任务task按任务名 / 描述 / 子内容匹配用户所在项目内的任务
  • 文件file按文件名匹配安装 search 插件后还能搜文件正文
  • 消息message按消息文本匹配用户能看到的会话消息

权限模型

所有搜索都先做用户身份验证(User::auth()),结果只返回当前用户已经有权限访问的对象。搜不到不一定是关键词错,也可能是没有权限。

双引擎设计

全局搜索有两套底层实现,按是否安装 search 插件自动切换:

  • 装了 Manticore 搜索插件:走 Manticore支持全文 / 向量 / 混合搜索
  • 未装:自动降级到 MySQL LIKE 模糊匹配

详见 search.engine.concept

入口

  • 桌面端:快捷键 Ctrl/Cmd + FCtrl/Cmd + /,详见 search.entry.menu-map
  • 移动端:在仪表盘等页面通过搜索按钮触发