Я создал index
и doc
в elasticsearch. Добавить сопоставление для doc.
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}
Когда я создаю документ, я поставил ttl
для документа.
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}'
Когда я пытаюсь получить ttl
в 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
} ]
}
}
Я включаю ttl
в индексе, используя новые сопоставления.
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"
}
}
}
}
}
}'
Затем добавьте новую запись.
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
}
И попробуйте снова получить ttl
, и он вернет ttl
в полях.
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
}
} ]
}
}
Обязательно включить ttl
в сопоставлениях, чтобы это произошло в документе?
_ttl
не включен по умолчанию, поэтому вам нужно включить его, чтобы работал TTL, но это не повлияет на уже созданные документы. - person Val   schedule 26.07.2016ttl
, тогда вызовPUT
должен вызвать ошибку? Поскольку я получаюcreated: true
, то я предполагаю, что он принимает все мои значения, есть ли способ определить это, если что-то не работает, дайте мне знать. - person Nilesh   schedule 26.07.2016ttl
молча игнорируется, если_ttl
не включен, из-за этого вы не получите никаких ошибок. Частью вашей работы является знание ваших сопоставлений и того, включили ли вы TTL или нет. - person Val   schedule 27.07.2016ttl
или нет? если мы включимttl
и планируем использовать это для документа в будущем, тогда это хорошо, или мы можем включить, когда захотим? - person Nilesh   schedule 27.07.2016