Порядковые номера были введены в ES 6.0.0. Незадолго до выхода этого релиза они были очень хорошо объяснены в этой статье блога .
Но в итоге,
version
- это порядковый номер, которыйподсчитывает количество раз, когда документ был обновлен _seq_no
- это последовательное число, которое подсчитывает количество операций, которые произошли с индексом
Так что если вы создаете второй документ,вы увидите, что version
и _seq_no
будут разными.
Давайте создадим три документа:
POST test/_doc/_bulk
{"index": {}}
{"test": 1}
{"index": {}}
{"test": 2}
{"index": {}}
{"test": 3}
В ответе вы получите полезную нагрузку ниже.
{
"took" : 166,
"errors" : false,
"items" : [
{
"index" : {
"_index" : "test",
"_type" : "_doc",
"_id" : "d2zbSW4BJvP7VWZfYMwQ",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 0,
"_primary_term" : 1,
"status" : 201
}
},
{
"index" : {
"_index" : "test",
"_type" : "_doc",
"_id" : "eGzbSW4BJvP7VWZfYMwQ",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 1,
"_primary_term" : 1,
"status" : 201
}
},
{
"index" : {
"_index" : "test",
"_type" : "_doc",
"_id" : "eWzbSW4BJvP7VWZfYMwQ",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 2,
"_primary_term" : 1,
"status" : 201
}
}
]
}
Как видно:
- для всех документов, версия равна 1
- для документа 1,
_seq_no
равна 0 (первая операция индексации) - для документа 2,
_seq_no
- 1 (вторая операция индексации) - для документа 3,
_seq_no
- 2 (третья операция индекса)