es 如何查询到当前文档的版本
时间: 2023-08-22 15:09:29 浏览: 47
在 Elasticsearch 中,每个文档都有一个版本号,用于控制并发更新时的冲突检测。可以使用 `_version` 字段来获取当前文档的版本号。
例如,使用以下查询可以获取 id 为 1 的文档的版本号:
```
GET my_index/_doc/1?_version
```
在查询结果中,会返回当前文档的 `_version` 字段,对应的值即为当前文档的版本号。
除了在查询时获取版本号,Elasticsearch 还提供了一些 API 来操作文档的版本号,例如:
- 在更新文档时,可以使用 `version` 参数来指定要更新的文档版本号。
- 在删除文档时,可以使用 `if_seq_no` 和 `if_primary_term` 参数来指定要删除的文档版本号。
这些 API 可以帮助我们更加精细地控制文档的版本号,从而避免并发更新时的冲突问题。
相关问题
es 使用_seearch 如何查询到当前文档的版本
在 Elasticsearch 中,使用 Search API 查询文档时,默认情况下不会返回文档的版本号,需要在查询参数中添加 `_version` 字段才能返回文档的版本号。
例如,以下查询可以获取所有文档的 `_id` 和 `_version` 字段:
```
GET my_index/_search
{
"_source": ["_id", "_version"]
}
```
在查询结果中,每个文档都会包含 `_id` 和 `_version` 两个字段,对应的值分别为文档的 ID 和版本号。
除了在查询时获取版本号,Elasticsearch 还提供了一些 API 来操作文档的版本号,例如:
- 在更新文档时,可以使用 `version` 参数来指定要更新的文档版本号。
- 在删除文档时,可以使用 `if_seq_no` 和 `if_primary_term` 参数来指定要删除的文档版本号。
这些 API 可以帮助我们更加精细地控制文档的版本号,从而避免并发更新时的冲突问题。
es5.6的版本中 使用_seearch 如何查询到当前文档的版本
在 Elasticsearch 5.6 版本中,可以使用 `_version` 字段来获取文档的版本号,在查询时需要将该字段添加到 `_source` 字段中。例如:
```
GET my_index/_search
{
"_source": ["_id", "_version"],
"query": {
"match_all": {}
}
}
```
在查询结果中,每个文档都会包含 `_id` 和 `_version` 两个字段,对应的值分别为文档的 ID 和版本号。
在更新文档时,可以使用 `version` 参数来指定要更新的文档版本号。例如:
```
POST my_index/_doc/1/_update
{
"doc": {
"name": "new_name"
},
"version": 1
}
```
在删除文档时,可以使用 `if_seq_no` 和 `if_primary_term` 参数来指定要删除的文档版本号。例如:
```
DELETE my_index/_doc/1?if_seq_no=1&if_primary_term=1
```
这些 API 可以帮助我们更加精细地控制文档的版本号,从而避免并发更新时的冲突问题。