我正在使用Elasticsearch 1.5.2
我有一个安装脚本,可以为我的应用程序创建所有必要的索引和映射。
创建这些索引后,我不想创建新索引或删除现有索引。 (手动或通过我的应用程序的一些无意执行)
是否可以在elasticsearch中设置任何配置并重启服务以实现上述目的?
由于
答案 0 :(得分:5)
根据官方Index API文档,您可以通过将以下设置添加到所有节点上的elasticsearch.yml
文件来禁用自动索引创建:
action.auto_create_index: false
您还可以阻止自动映射创建(即添加不在初始映射中的新字段时,将其添加到您的配置中:
index.mapper.dynamic: false
至于通过通配符/*
或/_all
阻止索引删除,您可以做的一件事就是将以下设置添加到您的配置文件中(它也可以通过{{动态完成) 3}}):
action.destructive_requires_name: true
除此之外,我担心除了确保您的代码不包含任何DELETE语句之外,您无法阻止删除命名索引。我不太了解您的环境,但有一种方法可能是在Apache或Nginx后面代理您的ES并将其配置为拒绝所有DELETE HTTP请求,但这也会阻止您删除文档。