Elasticsearch – Point in time API
概要
ある時点での索引に対して検索をするための機能
例えば、複数の処理中に索引の更新が発生した場合に結果の一貫性を保証するためなどに使える
使用方法
Point in time (PIT) を発行する
PIT には生存期間があり、keep_aliveパラメータで指定する
keep_aliveパラメータ
Searchリクエストなどに渡されたタイミングで、その生存期間を値に応じて延長する
つまり、一つの処理に掛かる時間を指定すれば十分
全てのデータを処理するのに十分な長さである必要は無い
手動でのCloseも可能
注意点
PITを発行するということは、その生存期間中はそのデータが生存するということ
バックグラウンドのマージ処理などで古いセグメントは消されずに残るため、十分なディスク容量があるかには注意が必要
その間の更新作業を追跡するためにヒープも使用するので、十分なヒープ領域があるかにも注意
よくある使用例
Search afterと組合せて、制限範囲以上の数のドキュメントを取ってくる