2013-06-23 16:03:05 -04:00
|
|
|
---
|
|
|
|
"TTL":
|
2013-07-01 09:58:23 -04:00
|
|
|
|
2013-06-23 16:03:05 -04:00
|
|
|
- do:
|
|
|
|
indices.create:
|
|
|
|
index: test_1
|
|
|
|
body:
|
|
|
|
mappings:
|
|
|
|
test:
|
|
|
|
_ttl:
|
|
|
|
enabled: 1
|
|
|
|
default: 10s
|
|
|
|
- do:
|
|
|
|
cluster.health:
|
|
|
|
wait_for_status: yellow
|
|
|
|
|
|
|
|
# blank ttl
|
|
|
|
- do:
|
|
|
|
index:
|
|
|
|
index: test_1
|
|
|
|
type: test
|
|
|
|
id: 1
|
|
|
|
body: { foo: bar }
|
|
|
|
|
|
|
|
- do:
|
|
|
|
get:
|
|
|
|
index: test_1
|
|
|
|
type: test
|
|
|
|
id: 1
|
|
|
|
fields: _ttl
|
2013-07-01 09:58:23 -04:00
|
|
|
|
Rest: Add all meta fields to the top level json document.
Some of our meta fields (such as _id, _version, ...) are returned as top-level
properties of the json document, while other properties (_timestamp, _routing,
...) are returned under `fields`. This commit makes all meta fields returned
as top-level properties.
So eg. `GET test/test/1?fields=_timestamp,foo` would now return
```json
{
"_index": "test",
"_type": "test",
"_id": "1",
"_version": 1,
"_timestamp": 10000000,
"found": true,
"fields": {
"foo": [ "bar" ]
}
}
```
while it used to return
```json
{
"_index": "test",
"_type": "test",
"_id": "1",
"_version": 1,
"found": true,
"fields": {
"_timestamp": 10000000,
"foo": [ "bar" ]
}
}
```
2014-10-17 06:35:20 -04:00
|
|
|
- lte: { _ttl: 10000}
|
|
|
|
- gt: { _ttl: 0}
|
2013-06-23 16:03:05 -04:00
|
|
|
|
|
|
|
# milliseconds
|
|
|
|
|
|
|
|
- do:
|
|
|
|
index:
|
|
|
|
index: test_1
|
|
|
|
type: test
|
|
|
|
id: 1
|
|
|
|
body: { foo: bar }
|
2015-05-25 06:48:34 -04:00
|
|
|
ttl: 100000ms
|
2013-06-23 16:03:05 -04:00
|
|
|
- do:
|
|
|
|
get:
|
|
|
|
index: test_1
|
|
|
|
type: test
|
|
|
|
id: 1
|
|
|
|
fields: _ttl
|
2013-07-01 09:58:23 -04:00
|
|
|
|
Rest: Add all meta fields to the top level json document.
Some of our meta fields (such as _id, _version, ...) are returned as top-level
properties of the json document, while other properties (_timestamp, _routing,
...) are returned under `fields`. This commit makes all meta fields returned
as top-level properties.
So eg. `GET test/test/1?fields=_timestamp,foo` would now return
```json
{
"_index": "test",
"_type": "test",
"_id": "1",
"_version": 1,
"_timestamp": 10000000,
"found": true,
"fields": {
"foo": [ "bar" ]
}
}
```
while it used to return
```json
{
"_index": "test",
"_type": "test",
"_id": "1",
"_version": 1,
"found": true,
"fields": {
"_timestamp": 10000000,
"foo": [ "bar" ]
}
}
```
2014-10-17 06:35:20 -04:00
|
|
|
- lte: { _ttl: 100000}
|
|
|
|
- gt: { _ttl: 10000}
|
2013-06-23 16:03:05 -04:00
|
|
|
|
|
|
|
# duration
|
|
|
|
|
|
|
|
- do:
|
|
|
|
index:
|
|
|
|
index: test_1
|
|
|
|
type: test
|
|
|
|
id: 1
|
|
|
|
body: { foo: bar }
|
|
|
|
ttl: 20s
|
|
|
|
|
|
|
|
- do:
|
|
|
|
get:
|
|
|
|
index: test_1
|
|
|
|
type: test
|
|
|
|
id: 1
|
|
|
|
fields: _ttl
|
2013-07-01 09:58:23 -04:00
|
|
|
|
Rest: Add all meta fields to the top level json document.
Some of our meta fields (such as _id, _version, ...) are returned as top-level
properties of the json document, while other properties (_timestamp, _routing,
...) are returned under `fields`. This commit makes all meta fields returned
as top-level properties.
So eg. `GET test/test/1?fields=_timestamp,foo` would now return
```json
{
"_index": "test",
"_type": "test",
"_id": "1",
"_version": 1,
"_timestamp": 10000000,
"found": true,
"fields": {
"foo": [ "bar" ]
}
}
```
while it used to return
```json
{
"_index": "test",
"_type": "test",
"_id": "1",
"_version": 1,
"found": true,
"fields": {
"_timestamp": 10000000,
"foo": [ "bar" ]
}
}
```
2014-10-17 06:35:20 -04:00
|
|
|
- lte: { _ttl: 20000}
|
|
|
|
- gt: { _ttl: 10000}
|
2013-06-23 16:03:05 -04:00
|
|
|
|
|
|
|
# with timestamp
|
|
|
|
|
|
|
|
- do:
|
2015-04-24 03:36:10 -04:00
|
|
|
catch: /already_expired_exception/
|
2013-06-23 16:03:05 -04:00
|
|
|
index:
|
|
|
|
index: test_1
|
|
|
|
type: test
|
|
|
|
id: 1
|
|
|
|
body: { foo: bar }
|
|
|
|
ttl: 20s
|
|
|
|
timestamp: 2013-06-23T18:14:40
|
|
|
|
|