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

Meilisearch搜索结果偏移量限制咨询:分页至第30页无结果

解决Meilisearch Offset分页超过1000无结果的问题

问题原因

Meilisearch默认配置了maxTotalHits参数,值为1000。这个参数限制了单次搜索请求能获取的最大结果总数,当你的offset + limit超过这个值时,就会返回空结果。你测试的offset=1000,limit=5总和为1005,超出限制所以无返回;而offset=999,limit=1总和刚好是1000,符合限制因此能拿到结果。

解决方案

1. 调整maxTotalHits配置

你可以通过API修改目标索引的配置,或者全局修改Meilisearch的默认限制:

方式一:通过API修改单个索引配置

使用curl命令更新指定索引的设置:

curl \
  -X PATCH http://127.0.0.1:7700/indexes/my-index/settings \
  -H "Authorization: Bearer my-meilisearch-key" \
  -H "Content-Type: application/json" \
  -d '{"maxTotalHits": 3500}' # 根据需求设置,比如100页×35条=3500

如果用Laravel Scout,可在代码中直接调用:

use Meilisearch\Client;

$client = new Client('http://127.0.0.1:7700', 'my-meilisearch-key');
$client->index('my-index')->updateSettings(['maxTotalHits' => 3500]);
方式二:全局修改Meilisearch配置(自托管部署)

若为自托管的Meilisearch,找到config.toml配置文件,添加或修改以下参数:

max_total_hits = 3500 # 全局默认的最大结果数限制

修改后重启Meilisearch服务即可生效。

2. 改用游标分页(推荐)

Offset分页在数据量较大时性能会随offset增大而下降,还受限于maxTotalHits。Meilisearch推荐使用游标分页,通过结果中的cursor参数获取下一页数据,无结果数限制:

示例:游标分页请求

第一次请求(第一页):

curl \
  -H "Authorization: Bearer my-meilisearch-key" \
  -H "Content-Type: application/json" \
  http://127.0.0.1:7700/indexes/my-index/search \
  -d '{"q":"","limit":35}'

返回结果中会包含hits和cursor字段,例如:

{
  "hits": [...],
  "cursor": "eyJza2lwIjoiMjAyNC0wNS0xMFQxMzoxNDoyNC4wMDAwMDAwWiJ9"
}

下一页请求时,用cursor参数替换offset:

curl \
  -H "Authorization: Bearer my-meilisearch-key" \
  -H "Content-Type: application/json" \
  http://127.0.0.1:7700/indexes/my-index/search \
  -d '{"q":"","limit":35,"cursor":"eyJza2lwIjoiMjAyNC0wNS0xMFQxMzoxNDoyNC4wMDAwMDAwWiJ9"}'

在Laravel Scout中,可通过cursor()方法实现游标分页:

use App\Models\Entry;

// 获取第一页数据
$entries = Entry::search('')->limit(35)->get();
$nextCursor = $entries->cursor();

// 获取下一页数据
$nextEntries = Entry::search('')->limit(35)->cursor($nextCursor)->get();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:03:01