es rollover机制是否无法自动创建索引
匿名 | 发布于2021年04月21日 | 阅读数:2340PUT /_template/test_template
{
"index_patterns": ["test-*"],
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0,
"refresh_interval": "1s"
},
"aliases":{
"test_search":{}
},
"mappings": {
"_doc": {
"dynamic": "strict",
"properties": {
"site": {
"type": "keyword"
}
}
}
}
}
PUT test-1
POST _aliases
{
"actions": [
{
"add": {
"index": "test-1",
"alias": "test-write-alias"
}
}
]
}
POST /test-write-alias/_rollover
{
"conditions": {
"max_docs": 1
}
}
执行到这步可以发现返回的是false,继续添加两条数据。
POST test-write-alias/_doc/1
{
"site" : "rt"
}
POST test-write-alias/_doc/2
{
"site" : "rt"
}
这时候发现没能再之前设置条件下,自动创建索引,只能继续添加rollover,然后满足条件了,创建新索引,以此类推步骤...
最终发现,好像真没办法自动去创建,有什么方案能让在满足rollover条件之后去自动创建索引,有个定时去设置rollover的方法,但感觉麻烦,有其他好的建议吗?
2 个回复
dadaball
赞同来自: Joekwal 、Memento
Charele - Cisco4321
赞同来自: Joekwal
当你执行
POST /test-write-alias/_rollover
{ "conditions": { "max_docs": 1 } } 的时候,索引里没有数据,不满足条件,
肯定返回false了,所以不会执行rollover,所以也不会生成新的索引了。
后来你加了数据,就可以了正确执行rollover,生成新索引了。
这没有问题啊,