首页/数据/NoSQL 速查/PIT 搜索上下文(point in time)
Elasticsearch89 条

PIT 搜索上下文(point in time)

PIT 为一次搜索会话固定索引视图,与 search_after 搭配实现稳定且省资源的深分页;用完需显式关闭,否则会一直保留段引用。

NoSQL 速查数据更新于 2026-10-12
创建POST /<index>/_pit?keep_alive=1m
使用search 请求体里写 "pit": { "id": "...", "keep_alive": "1m" },可不指定索引
收尾DELETE /_pit 传 id 关闭

示例

示例
POST /my-index/_pit?keep_alive=1m

GET /_search
{
  "size": 10,
  "query": { "match": { "title": "elastic" } },
  "pit": { "id": "<pit_id>", "keep_alive": "1m" },
  "sort": [ { "@timestamp": "desc" }, { "_shard_doc": "asc" } ]
}

DELETE /_pit
{ "id": "<pit_id>" }
使用 PIT 的查询不能带 from;跨索引 PIT 要求索引结构兼容。

易错点

  • keep_alive 每次搜索可以续期,但过期后 search_after 会报 context missing,长任务要留足余量
  • PIT 期间的段无法合并,大范围时间窗的 PIT 会推迟磁盘回收

数据来源与参考

  • Elasticsearch Guide: Point in time API
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌