---

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>"
}

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部