Commit 12ac6559e39c109d0aaf4f980c68bd9728be1602
1 parent
a00c3672
接口文档
Showing
1 changed file
with
14 additions
and
107 deletions
Show diff stats
API_DOCUMENTATION.md
| @@ -14,40 +14,14 @@ | @@ -14,40 +14,14 @@ | ||
| 14 | 14 | ||
| 15 | ## 基础信息 | 15 | ## 基础信息 |
| 16 | 16 | ||
| 17 | -- **Base URL**: `http://your-domain:6002` | 17 | +- **Base URL**: `http://your-domain:6002` (http://120.76.41.98:6002) |
| 18 | - **协议**: HTTP/HTTPS | 18 | - **协议**: HTTP/HTTPS |
| 19 | - **数据格式**: JSON | 19 | - **数据格式**: JSON |
| 20 | - **字符编码**: UTF-8 | 20 | - **字符编码**: UTF-8 |
| 21 | 21 | ||
| 22 | ## 认证 | 22 | ## 认证 |
| 23 | 23 | ||
| 24 | -当前版本暂不需要认证。未来版本将支持 API Key 或 OAuth 2.0。 | ||
| 25 | - | ||
| 26 | -## 通用响应格式 | ||
| 27 | - | ||
| 28 | -### 成功响应 | ||
| 29 | - | ||
| 30 | -HTTP Status: `200 OK` | ||
| 31 | - | ||
| 32 | -### 错误响应 | ||
| 33 | - | ||
| 34 | -HTTP Status: `4xx` 或 `5xx` | ||
| 35 | - | ||
| 36 | -```json | ||
| 37 | -{ | ||
| 38 | - "error": "错误消息", | ||
| 39 | - "detail": "详细错误信息", | ||
| 40 | - "timestamp": 1699800000 | ||
| 41 | -} | ||
| 42 | -``` | ||
| 43 | - | ||
| 44 | -常见错误码: | ||
| 45 | -- `400 Bad Request`: 请求参数错误 | ||
| 46 | -- `404 Not Found`: 资源不存在 | ||
| 47 | -- `500 Internal Server Error`: 服务器内部错误 | ||
| 48 | -- `503 Service Unavailable`: 服务不可用 | ||
| 49 | - | ||
| 50 | ---- | 24 | +目前适配店匠,作为店匠搜索插件的一部分。(店匠插件认证方式为OAuth 2.0) |
| 51 | 25 | ||
| 52 | ## 搜索接口 | 26 | ## 搜索接口 |
| 53 | 27 | ||
| @@ -80,18 +54,18 @@ HTTP Status: `4xx` 或 `5xx` | @@ -80,18 +54,18 @@ HTTP Status: `4xx` 或 `5xx` | ||
| 80 | 54 | ||
| 81 | | 参数 | 类型 | 必填 | 默认值 | 描述 | | 55 | | 参数 | 类型 | 必填 | 默认值 | 描述 | |
| 82 | |------|------|------|--------|------| | 56 | |------|------|------|--------|------| |
| 83 | -| `query` | string | ✅ | - | 搜索查询字符串,支持布尔表达式(AND, OR, RANK, ANDNOT) | | ||
| 84 | -| `size` | integer | ❌ | 10 | 返回结果数量(1-100) | | ||
| 85 | -| `from` | integer | ❌ | 0 | 分页偏移量 | | ||
| 86 | -| `filters` | object | ❌ | null | 精确匹配过滤器(见下文) | | ||
| 87 | -| `range_filters` | object | ❌ | null | 数值范围过滤器(见下文) | | ||
| 88 | -| `facets` | array | ❌ | null | 分面配置(见下文) | | ||
| 89 | -| `sort_by` | string | ❌ | null | 排序字段名 | | ||
| 90 | -| `sort_order` | string | ❌ | "desc" | 排序方向:`asc` 或 `desc` | | ||
| 91 | -| `min_score` | float | ❌ | null | 最小相关性分数阈值 | | ||
| 92 | -| `debug` | boolean | ❌ | false | 是否返回调试信息 | | ||
| 93 | -| `user_id` | string | ❌ | null | 用户ID(用于个性化,预留) | | ||
| 94 | -| `session_id` | string | ❌ | null | 会话ID(用于分析,预留) | | 57 | +| `query` | string | Y | - | 搜索查询字符串,支持布尔表达式(AND, OR, RANK, ANDNOT) | |
| 58 | +| `size` | integer | N | 10 | 返回结果数量(1-100) | | ||
| 59 | +| `from` | integer | N | 0 | 分页偏移量 | | ||
| 60 | +| `filters` | object | N | null | 精确匹配过滤器(见下文) | | ||
| 61 | +| `range_filters` | object | N | null | 数值范围过滤器(见下文) | | ||
| 62 | +| `facets` | array | N | null | 分面配置(见下文) | | ||
| 63 | +| `sort_by` | string | N | null | 排序字段名 | | ||
| 64 | +| `sort_order` | string | N | "desc" | 排序方向:`asc` 或 `desc` | | ||
| 65 | +| `min_score` | float | N | null | 最小相关性分数阈值 | | ||
| 66 | +| `debug` | boolean | N | false | 是否返回调试信息 | | ||
| 67 | +| `user_id` | string | N | null | 用户ID(用于个性化,预留) | | ||
| 68 | +| `session_id` | string | N | null | 会话ID(用于分析,预留) | | ||
| 95 | 69 | ||
| 96 | #### 过滤器详解 | 70 | #### 过滤器详解 |
| 97 | 71 | ||
| @@ -838,60 +812,6 @@ curl -X POST "http://localhost:6002/search/" \ | @@ -838,60 +812,6 @@ curl -X POST "http://localhost:6002/search/" \ | ||
| 838 | 812 | ||
| 839 | --- | 813 | --- |
| 840 | 814 | ||
| 841 | -## 性能优化建议 | ||
| 842 | - | ||
| 843 | -### 1. 分页 | ||
| 844 | - | ||
| 845 | -使用 `size` 和 `from` 参数进行分页: | ||
| 846 | - | ||
| 847 | -```json | ||
| 848 | -{ | ||
| 849 | - "query": "玩具", | ||
| 850 | - "size": 20, | ||
| 851 | - "from": 0 // 第1页 | ||
| 852 | -} | ||
| 853 | - | ||
| 854 | -{ | ||
| 855 | - "query": "玩具", | ||
| 856 | - "size": 20, | ||
| 857 | - "from": 20 // 第2页 | ||
| 858 | -} | ||
| 859 | -``` | ||
| 860 | - | ||
| 861 | -**建议**: | ||
| 862 | -- 单页结果数不超过 100 | ||
| 863 | -- 深度分页(from > 10000)性能较差,建议使用 `search_after`(未来版本支持) | ||
| 864 | - | ||
| 865 | -### 2. 字段选择 | ||
| 866 | - | ||
| 867 | -默认返回所有字段。如果只需要部分字段,可以在后端配置中设置。 | ||
| 868 | - | ||
| 869 | -### 3. 缓存 | ||
| 870 | - | ||
| 871 | -系统自动缓存: | ||
| 872 | -- 查询向量(避免重复计算) | ||
| 873 | -- 翻译结果 | ||
| 874 | -- 常见查询结果(未来版本) | ||
| 875 | - | ||
| 876 | -### 4. 批量查询 | ||
| 877 | - | ||
| 878 | -如需批量查询,建议: | ||
| 879 | -- 使用异步并发请求 | ||
| 880 | -- 控制并发数(建议 ≤ 10) | ||
| 881 | -- 添加请求间隔(避免限流) | ||
| 882 | - | ||
| 883 | ---- | ||
| 884 | - | ||
| 885 | -## 限流规则 | ||
| 886 | - | ||
| 887 | -| 端点 | 限制 | | ||
| 888 | -|------|------| | ||
| 889 | -| `/search/` | 无限制(生产环境建议配置) | | ||
| 890 | -| `/search/suggestions` | 60次/分钟 | | ||
| 891 | -| `/search/instant` | 120次/分钟 | | ||
| 892 | -| `/admin/*` | 60次/分钟 | | ||
| 893 | - | ||
| 894 | ---- | ||
| 895 | 815 | ||
| 896 | ## 常见问题 | 816 | ## 常见问题 |
| 897 | 817 | ||
| @@ -994,14 +914,6 @@ curl -X POST "http://localhost:6002/search/" \ | @@ -994,14 +914,6 @@ curl -X POST "http://localhost:6002/search/" \ | ||
| 994 | 914 | ||
| 995 | --- | 915 | --- |
| 996 | 916 | ||
| 997 | -## 联系与支持 | ||
| 998 | - | ||
| 999 | -- **API 文档**: http://localhost:6002/docs(Swagger UI) | ||
| 1000 | -- **ReDoc 文档**: http://localhost:6002/redoc | ||
| 1001 | -- **问题反馈**: 请联系技术支持团队 | ||
| 1002 | - | ||
| 1003 | ---- | ||
| 1004 | - | ||
| 1005 | ## 附录 | 917 | ## 附录 |
| 1006 | 918 | ||
| 1007 | ### A. 支持的分析器 | 919 | ### A. 支持的分析器 |
| @@ -1028,8 +940,3 @@ curl -X POST "http://localhost:6002/search/" \ | @@ -1028,8 +940,3 @@ curl -X POST "http://localhost:6002/search/" \ | ||
| 1028 | | `TEXT_EMBEDDING` | dense_vector | 文本向量(1024维) | | 940 | | `TEXT_EMBEDDING` | dense_vector | 文本向量(1024维) | |
| 1029 | | `IMAGE_EMBEDDING` | dense_vector | 图片向量(1024维) | | 941 | | `IMAGE_EMBEDDING` | dense_vector | 图片向量(1024维) | |
| 1030 | 942 | ||
| 1031 | ---- | ||
| 1032 | - | ||
| 1033 | -**文档版本**: 3.0 | ||
| 1034 | -**最后更新**: 2024-11-12 | ||
| 1035 | - |