步骤:创建模板 -》 创建索引 -》设置滚动索引 -》 加入数据看效果
结果:设置滚动索引滚则为总条数为2创建新索引{"conditions": {"max_docs":2}},但是测试发现后续添加操作只在设置滚动索引后重新生成一个新索引,哪怕包含数量超过2条,也不会去新建新索引, 也就是执行一次滚动索引才会创建一次索引,后续不会自动滚动创建,不是一次设置多次有效自动创建问题
步骤:创建模板 -》 创建索引 -》设置滚动索引 -》 加入数据看效果
结果:设置滚动索引滚则为总条数为2创建新索引{"conditions": {"max_docs":2}},但是测试发现后续添加操作只在设置滚动索引后重新生成一个新索引,哪怕包含数量超过2条,也不会去新建新索引, 也就是执行一次滚动索引才会创建一次索引,后续不会自动滚动创建,不是一次设置多次有效自动创建问题
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
要解决这个问题,你需要修改你的Elasticsearch配置文件。在你的elasticsearch.yml
文件中找到以下部分:
# 滚动索引的配置
rollover:
enabled: false
将enabled: false
更改为enabled: true
。
然后重启Elasticsearch服务来应用更改。你可以使用以下命令进行重启:
sudo service elasticsearch restart
如果你已经设置了滚动索引并希望永久生效,请参考以下示例代码:
import json
from elasticsearch import Elasticsearch
es = Elasticsearch()
response = es.indices.create(index="my-index", body={
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"properties": {
"doc_type_1": {
"type": "text"
}
}
}
})
if response["created"]:
print("Index created successfully.")
else:
print(f"Failed to create index {response['error']['message']}")
# 设置滚动索引
es.indices.put_alias(
index="my-index",
alias="alias_name",
settings={"rollover": {"enabled": True, "max_docs": 5}}
)
# 测试是否成功
response = es.search(index="my-index", body={"query": {"match_all": {}}})
print(response)
这段代码首先创建了一个名为my-index
的新索引,并且设置了一个新的rollover
属性。然后,它尝试通过设置滚动索引来创建一个新的索引,这应该会成功。
注意,这个例子假设你有一个名为alias_name
的别名。如果不存在这个别名,你可能需要手动创建它。此外,确保你的Elasticsearch集群正在运行并且可以接受请求。