You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Watson Discovery查询全集合仅返回10条结果,如何获取全部17条匹配数据

解决方案

原因说明

Watson Discovery 查询接口默认仅返回10条匹配结果,matching_results返回的是全局匹配总数,和单次返回的结果条数无关。

单次拉取全量结果(匹配数≤1000时适用,你的17条满足该场景)

你只需要在构建查询参数时额外指定count参数,设置值≥总匹配数即可:

QueryOptions.Builder queryBuilder = new QueryOptions
        .Builder(environmentId, collectionId);
queryBuilder.query("text:*");
// 新增配置:指定返回17条结果,也可以直接设置为20等大于17的数值
queryBuilder.count(17);
QueryResponse queryResponse = discovery.query(queryBuilder.build()).execute().getResult();

动态获取全量结果(适配匹配数不确定的场景)

如果不想硬编码count数值,可以先查询总匹配数再动态拉取:

QueryOptions.Builder queryBuilder = new QueryOptions
        .Builder(environmentId, collectionId);
queryBuilder.query("text:*");
// 第一步:仅查询总匹配数,不返回文档内容
queryBuilder.count(0);
QueryResponse countResp = discovery.query(queryBuilder.build()).execute().getResult();
int total = countResp.getMatchingResults().intValue();
// 第二步:按总匹配数拉取全量结果
queryBuilder.count(total);
QueryResponse fullResp = discovery.query(queryBuilder.build()).execute().getResult();

直接输出JSON格式结果

SDK 已经内置了JSON序列化能力,无需自行解析:

// 输出格式化的JSON字符串
String formattedJson = fullResp.toString();
// 输出紧凑无空白的JSON字符串
String compactJson = fullResp.getJsonObject().toString();

超过1000条的补充说明

如果后续匹配总条数超过1000(Watson Discovery单页查询最大返回条数),需要结合offset参数分页拉取,每轮查询偏移上一轮的条数,最后合并所有结果即可。

内容的提问来源于stack exchange,提问作者Tony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:12:03