---
title: Elasticsearch PIT 与 search_after 深分页稳定查询实践
keywords: PIT, search_after, keep_alive, _shard_doc, sort
description: 使用 Point-in-Time 与 search_after 实现深分页稳定查询,避免滚动期间索引变更导致结果漂移。
tags:
- Elasticsearch
- PIT
- _shard_doc
- keep_alive
- search_after
- sort
- 搜索
- 查询
categories:
- 文章资讯
- 技术教程
---
打开 PIT:
POST /products/_pit?keep_alive=1m
首次查询(不含 search_after):
POST /_search
{
"pit": { "id": "<PIT_ID>", "keep_alive": "1m" },
"size": 50,
"sort": [ { "price": "asc" }, { "_shard_doc": "asc" } ],
"query": { "term": { "category": "electronics" } }
}
后续查询(携带上一页最后一条的 sort 值):
POST /_search
{
"pit": { "id": "<PIT_ID>", "keep_alive": "1m" },
"size": 50,
"sort": [ { "price": "asc" }, { "_shard_doc": "asc" } ],
"search_after": [ 123.45, "g1AAAAB..." ],
"query": { "term": { "category": "electronics" } }
}
关闭 PIT:
DELETE /_pit
{
"pit_id": "<PIT_ID>"
}

发表评论 取消回复