跨分区日志检索

验证状态:已源码核验、未联调(中心代理段已闭合;Meilisearch 服务器本体不在本工作区);适用基线:源码归纳 @ 2026-09-14

用途与场景

一次向检索引擎提交多个分区索引的查询并合并结果。当前 Web 的日志/报表检索(用户操作日志、GPS、电量、MQTT 连接统计)都以本操作为实际取数通道:按日期把时间范围拆到多个分区索引,每索引一个子查询。

使用位置

页面/功能 角色或空间分支
分区日志搜索(用户日志/GPS/电量) 登录用户
MQTT 连接统计(admin / to-b) 登录用户

端点

POST /main-service/system-api/meilisearch/multi-search(SDK 经中心代理访问检索引擎)— 一次提交多个分区索引的查询并合并结果(日志/报表取数主通道)。

代理契约:MeilisearchProxyController 透传 /system-api/meilisearch/** 全部方法(登录 token 被代理剥除并以服务端 api-key 重写,响应不走中心 {status,data} 信封);该代理不在 Swagger 分组,属清单层已知缺口项(allowlist 登记)。分区索引的写侧调度见设备业务 · runtime-links 运行时关联

动线与完成判据

SDK Promise resolve 且 results 可合并即本页取数完成;current>=pages 表示没有更多页(无限滚动)。失败走 to + log.error 并呈现空页,不弹全局错误。

错误与边界

上游错误经代理保留上游 HTTP 状态(同枚举日志检索索引)。检索为只读,可重试;跨分区 offset 语义 = 每分区各自偏移后归并,深翻页时各分区 offset 同步推进,非全局精确窗口(现行合并算法决定)。

调用关系与资源清理

无长连接资源。前置:枚举日志检索索引 + 索引设置初始化(读取/更新)。

已知缺口

Meilisearch 服务器本体不在本工作区:estimatedTotalHits 等响应键以官方 API 为准;tenantId 过滤是应用层行为,引擎侧不强制租户隔离(任何经代理的已认证用户可构造任意 filter),隔离强度未评估;索引文档字段的写侧全集未逐域核验。