add search function
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
- pytest / FastAPI TestClient
|
||||
- Docker / Docker Compose
|
||||
|
||||
项目目标是小而稳、容易继续扩展。目前已经支持固定三层的数据结构、基础 CRUD,以及单图上传能力,但仍然没有加入搜索、OCR、AI 识别或其他扩展功能。
|
||||
项目目标是小而稳、容易继续扩展。目前已经支持固定三层的数据结构、基础 CRUD、单图上传能力和全局搜索,但仍然没有加入 OCR、AI 识别或其他扩展功能。
|
||||
|
||||
## 当前数据模型
|
||||
|
||||
@@ -44,6 +44,7 @@ Box
|
||||
- Item 新建、详情、编辑、删除
|
||||
- SubItem 新建、编辑、删除
|
||||
- Box / Item / SubItem 单张图片上传、替换、删除、展示
|
||||
- Box / Item / SubItem 全局搜索
|
||||
- `/` 重定向到 `/boxes`
|
||||
- Jinja2 模板渲染
|
||||
- 静态文件挂载
|
||||
@@ -92,6 +93,33 @@ Box
|
||||
- `/items/{id}/image`
|
||||
- `/subitems/{id}/image`
|
||||
|
||||
## 全局搜索
|
||||
|
||||
当前已经支持一个轻量的全局搜索页:
|
||||
|
||||
- 路由:`/search`
|
||||
- 使用 query parameter,例如:`/search?q=电源线`
|
||||
|
||||
搜索范围包括:
|
||||
|
||||
- `Box.name`
|
||||
- `Box.note`
|
||||
- `Item.name`
|
||||
- `Item.note`
|
||||
- `SubItem.name`
|
||||
- `SubItem.note`
|
||||
|
||||
当前使用 SQLite 上的简单模糊匹配完成搜索,不引入外部搜索引擎或复杂全文系统。
|
||||
|
||||
搜索结果会尽量帮助你快速定位:
|
||||
|
||||
- 显示对象类型:`Box / Item / SubItem`
|
||||
- 显示名称和备注
|
||||
- 显示归属路径
|
||||
- 对 `Item` 展示所属 `Box`
|
||||
- 对 `SubItem` 展示所属 `Item` 和 `Box`
|
||||
- 如果对象已有图片,会显示一个小缩略图
|
||||
|
||||
## 当前未实现
|
||||
|
||||
这一阶段仍然没有实现以下内容:
|
||||
@@ -232,5 +260,6 @@ python -m pytest
|
||||
- 非容器 Item 不能创建 SubItem
|
||||
- Box / Item 删除后的级联删除
|
||||
- 图片上传、转换为 JPEG、缩放、读取、替换、删除
|
||||
- 全局搜索 name / note,并展示对象类型与归属路径
|
||||
- 无图片访问和非法图片上传等错误路径
|
||||
- 关键 POST 请求后的重定向行为
|
||||
|
||||
Reference in New Issue
Block a user