だんせいページング


1. Pagination
私たちが知っているような一般的なWebナビゲーションです.基本的に各クエリーは10個です.
# Pagination

# First request
GET products/_search
{
  "query": {
	"match": {
  	"name": "bike"
	}
  },
  "size": 10,
  "from": 0
}

# Next request
GET products/_search
{
  "query": {
	"match": {
  	"name": "bike"
	}
  },
  "size": 10,
  "from": 10
}
2.Search-After(推奨)
ページ番号はなく、nextボタンのみ使用できます.無限スクロール時に使用できます.
# Search after

# First request
GET products/_search
{
  "query": {
	"match": {
  	"name": "bike"
	}
  },
  "size": 10,
  "sort": [
	{
  	"_score": "desc"
	},
	{
  	"id.keyword": "asc"
	}
  ]
}

# Next request
GET products/_search
{
  "query": {
	"match": {
  	"name": "bike"
	}
  },
  "size": 10,
  "sort": [
	{
  	"_score": "desc"
	},
	{
  	"id.keyword": "asc"
	}
  ],
  "search_after": [
	0.2876821,
	"1"
  ]
}
3. Point in Time
ユーザーが特定の時間内に同じバージョンのインデックスを表示できるようにします.
# Create PIT for index
POST products/_pit?keep_alive=2m

# First page
GET _search
{
  "from": 0,
  "size": 10,
  "query": {
	"match": {
  	"name": "bike"
	}
  },
  "pit": {
	"id": "85ezAwEIcHJvZHVjdHMWSzJZVTdKOU1RLU9SRVBsck43SGg3dwAWS3ptRzhJX3FUZE9iaGVpY3J5VmhTdwAAAAAAAAAABxZVYm5aNWF2U1NqcWJJdXhPc1dyS2hBAAEWSzJZVTdKOU1RLU9SRVBsck43SGg3dwAA",
	"keep_alive" : "2m"
  }
}

# Following page
GET _search
{
  "from": 10,
  "size": 10,
  "query": {
	"match": {
  	"name": "bike"
	}
  },
  "pit": {
	"id": "85ezAwEIcHJvZHVjdHMWSzJZVTdKOU1RLU9SRVBsck43SGg3dwAWS3ptRzhJX3FUZE9iaGVpY3J5VmhTdwAAAAAAAAAABxZVYm5aNWF2U1NqcWJJdXhPc1dyS2hBAAEWSzJZVTdKOU1RLU9SRVBsck43SGg3dwAA",
	"keep_alive" : "2m"
  }
}
4. Scroll API
これらのドキュメントは、クエリーに大量のドキュメントを使用する必要がある場合に使用できます.無限スクロールには使用できません.
# First request
GET products/_search?scroll=1m
{
  "size": 10,
  "query": {
	"match": {
  	"name": "bike"
	}
  }
}

# Next request
GET _search/scroll
{
  "scroll": "1m",
  "scroll_id": "FGluY2x1ZGVfY29udGV4dF91dWlkDXF1ZXJ5QW5kRmV0Y2gBFlViblo1YXZTU2pxYkl1eE9zV3JLaEEAAAAAAAAAChZLem1HOElfcVRkT2JoZWljcnlWaFN3"
}
注意:https://opster.com/guides/elasticsearch/how-tos/elasticsearch-pagination-techniques/
https://www.elastic.co/guide/en/elasticsearch/reference/current/paginate-search-results.html