49 lines
1.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: search.concept
title: 全局搜索是什么
type: concept
feature: search
scope: end-user
locale: zh
aliases:
- 全局搜索
- 搜索是什么
- 总搜索
- 怎么搜东西
- 在哪里搜
related_tools: []
related_pages: []
prerequisites: []
negative:
- 全局搜索不会跨用户:只能搜到当前账号有权限看到的内容
- 关键词为空时不会触发搜索,必须输入至少 1 个字符
- 单次搜索每类对象最多返回 50 条(默认 20 条)
last_verified: 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 + F``Ctrl/Cmd + /`,详见 [[search.entry.menu-map]]
- 移动端:在仪表盘等页面通过搜索按钮触发