#elasticsearch
#elasticsearch
Вопрос:
Я рассмотрел несколько вопросов с той же проблемой «document_missing_exception», но, похоже, в моем случае это не та же проблема. Я могу запросить документ, но не удалось, когда я попытался его обновить. Мой запрос:
# search AuthEvent by sessionID
GET events-*/_search
{
"size": "100",
"query": {
"bool": {
"must": [{
"term": {
"type": {
"value": "AuthEvent"
}
}
},
{
"term": {
"client.sessionID.raw": {
"value": "067d660a1504Y67FOuiiRIEkVNG8uYIlnK87liuZGLBcSmEW0aHoDXAHfu"
}
}
}
]
}
}
}
Результат запроса:
{
"took" : 18,
"timed_out" : false,
"_shards" : {
"total" : 76,
"successful" : 76,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 6.705622,
"hits" : [
{
"_index" : "events-2020.10.06",
"_type" : "doc",
"_id" : "2c675295b27a225ce243d2f13701b14222074eaf",
"_score" : 6.705622,
"_routing" : "067d660a1504Y67FOuiiRIEkVNG8uYIlnK87liuZGLBcSmEW0aHoDXAHfu",
"_source" : {
# some data
}
}
]
}
}
Запрос на обновление:
POST events-2020.10.06/_doc/2c675295b27a225ce243d2f13701b14222074eaf/_update
{
"doc" : {
"custom" : {
"testField" : "testData"
}
}
}
И результат обновления:
{
"error" : {
"root_cause" : [
{
"type" : "document_missing_exception",
"reason" : "[_doc][2c675295b27a225ce243d2f13701b14222074eaf]: document missing",
"index_uuid" : "5zhQy6W6RnWscDz7Av4_bA",
"shard" : "1",
"index" : "events-2020.10.06"
}
],
"type" : "document_missing_exception",
"reason" : "[_doc][2c675295b27a225ce243d2f13701b14222074eaf]: document missing",
"index_uuid" : "5zhQy6W6RnWscDz7Av4_bA",
"shard" : "1",
"index" : "events-2020.10.06"
},
"status" : 404
}
Я новичок в ElasticSearch и не смог найти никаких причин для такого поведения. Я использую версию ElasticSearch 6.7.1 oss Kibana для работы с данными. Я также пытался с массовым обновлением, но закончил с той же ошибкой.
Ответ №1:
Как вы можете видеть в результатах запроса, ваш документ был проиндексирован со routing
значением, и оно отсутствует в вашем запросе на обновление.
Попробуйте это вместо:
POST events-2020.10.06/_doc/2c675295b27a225ce243d2f13701b14222074eaf/_update?routing=067d660a1504Y67FOuiiRIEkVNG8uYIlnK87liuZGLBcSmEW0aHoDXAHfu
{
"doc" : {
"custom" : {
"testField" : "testData"
}
}
}
Если документ индексируется со routing
значением, все последующие операции получения, обновления и удаления также должны выполняться с этим значением маршрутизации.
Комментарии:
1. Это сработало отлично! Я обновил команду массового обновления, и она также сработала. Большое вам спасибо.