read_query_result
Paginate through a stored query result by handle and optionally filter entries by a case-insensitive substring pattern to locate specific records in large game metadata result sets.
Instructions
按句柄翻页读取之前某次查询的完整结果;给了 pattern 就在结果内再过滤。
列表类工具单次只返回一页,但完整结果留在句柄里。
(原先独立的 search_query_result 已按契约第 3 条合并进来 ——
它就是本工具在 pattern="" 时的特例。)
两个用途共用本工具:
只看第 500~550 条 → 只给
offset/limit;在这一批结果里再找含某子串的 → 再加
pattern(大小写不敏感)。
两者的成本不一样:纯翻页只解析取到的那一页(结果集是惰性物化的, 见
engine/index.py的_RowSource);而pattern要看每条的值才能 过滤,必须把整个结果集解析一遍。所以在几万条的句柄上, 纯翻页是毫秒级,带pattern会明显更慢 —— 缩小范围优先用search_*的参数(pattern/subtype_of/owner/assembly)。
原先另有一个
search_query_result,实测它在pattern=""时与本工具 输出完全相同 —— 它就是本工具的特例。按契约第 3 条(单一职责: 一个是另一个的特例就合并)已删除,并入pattern参数。
句柄有两个来源,本工具都能读:
search_*这类静态查询登记的索引句柄, 以及响应超限被截断时登记的cap-句柄(那种句柄可能在没有索引时也存在)。 句柄只在它所属的那一个会话内有效;过期时返回available_handles列出当前还能用的,绝不静默换成另一个结果集。
Args: handle: search_classes 等返回的 handle。 offset: 起始位置。 limit: 本页条数(上限 2000)。 pattern: 在结果集内二次过滤的子串;留空表示不过滤(纯翻页)。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| handle | Yes | ||
| offset | No | ||
| pattern | No |