0 Ich habe index
und doc
in elasticsearch erstellt. Fügen Sie das Mapping für das Dokument hinzu.elasticsearch nicht zurück ttl in Feldern, wenn nicht in Zuordnungen
curl http://localhost:9200/test -X POST
{"acknowledged":true}
curl http://localhost:9200/test/student_doc/_mappings -X PUT -d '{
"student_doc" : {
"properties" : {
"name" : {
"properties" : {
"student_id" : {
"type" : "string"
},
"tags": {
"type" : "string"
}
}
}
}
}
}'
{"acknowledged":true}
Als ich doc erstellen, gab ich ttl
für den Dok.
curl http://localhost:9200/test/student_doc/4?ttl=2500 -X PUT -d '{"student_id": "4", "tags": ["test"]}' -H 'Content-type: application/json'
{"_index":"test","_type":"student_doc","_id":"4","_version":1,"created":true}'
Wenn ich versuche, den ttl
in fields
curl http://localhost:9200/test/_search?pretty -X POST -d '{"fields": ["_ttl"]}'
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 1.0,
"hits" : [ {
"_index" : "test",
"_type" : "student_doc",
"_id" : "4",
"_score" : 1.0
} ]
}
}
ermogliche ttl
in Index mit neuen Zuordnungen zu erhalten.
curl http://localhost:9200/test/student_doc/_mappings -X PUT -d '{
"student_doc" : {
"_ttl": {"enabled": true},
"properties" : {
"name" : {
"properties" : {
"student_id" : {
"type" : "string"
},
"tags": {
"type" : "string"
}
}
}
}
}
}'
Fügen Sie dann einen neuen Datensatz hinzu.
curl "http://localhost:9200/test/student_doc/5?ttl=2500&pretty" -X PUT -d '{"student_id": "5", "tags": ["test"]}' -H 'Content-type: application/json'
{
"_index" : "test",
"_type" : "student_doc",
"_id" : "5",
"_version" : 1,
"created" : true
}
Und versuchen ttl
wieder zu bekommen und es die ttl
in Feldern zurückgibt.
curl http://localhost:9200/test/_search?pretty -X POST -d '{"fields": ["_ttl"]}'
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 2,
"max_score" : 1.0,
"hits" : [ {
"_index" : "test",
"_type" : "student_doc",
"_id" : "4",
"_score" : 1.0
}, {
"_index" : "test",
"_type" : "student_doc",
"_id" : "5",
"_score" : 1.0,
"fields" : {
"_ttl" : -420
}
} ]
}
}
Es ist Pflicht, aktiviert ttl
in Mappings, um es in dem Dokument vorgenommen werden?
Ja, '_ttl' ist nicht standardmäßig aktiviert, daher müssen Sie es aktivieren, damit TTL funktioniert. Dies wirkt sich jedoch nicht auf bereits erstellte Dokumente aus. – Val
@Val, wenn es nicht in der Lage ist, 'ttl' zu setzen, dann' PUT' Aufruf sollte Fehler auslösen? Weil ich "created: true" bekomme, dann nehme ich an, dass es alle meine Werte braucht, gibt es eine Möglichkeit, das zu definieren, wenn etwas nicht funktioniert, lass es mich wissen. – Nilesh
Der 'ttl' Parameter wird stillschweigend ignoriert, wenn '_ttl' nicht aktiviert ist, Sie erhalten dadurch keinen Fehler. Es gehört zu Ihrer Aufgabe, Ihre Zuordnungen zu kennen und ob Sie TTL aktiviert haben oder nicht. – Val