elasticsearch,Amazon Web Services,elasticsearch" /> elasticsearch,Amazon Web Services,elasticsearch" />

Amazon web services Can';是否关闭AWS上的ElasticSearch索引?

Amazon web services Can';是否关闭AWS上的ElasticSearch索引?,amazon-web-services,elasticsearch,Amazon Web Services,elasticsearch,我已经创建了一个新的AWS ElasticSearch域,用于测试。我现在在另一台主机上使用ES,我希望转移到AWS 我需要做的一件事是在我的实例上设置映射(分析器)。为此,我需要“关闭”索引,否则ES只会引发异常 但是,每当我尝试关闭索引时,AWS都会出现一个异常: Your request: '/_all/_close' is not allowed by CloudSearch. 政府特别指出,在某些情况下要做到这一点: curl -XPOST 'http://search-weblo

我已经创建了一个新的AWS ElasticSearch域,用于测试。我现在在另一台主机上使用ES,我希望转移到AWS

我需要做的一件事是在我的实例上设置映射(分析器)。为此,我需要“关闭”索引,否则ES只会引发异常

但是,每当我尝试关闭索引时,AWS都会出现一个异常:

Your request: '/_all/_close' is not allowed by CloudSearch.
政府特别指出,在某些情况下要做到这一点:

 curl -XPOST 'http://search-weblogs-abcdefghijklmnojiu.us-east-1.a9.com/_all/_close'
我还没有找到任何文档说明为什么我无法关闭AWS ES上的索引,也没有找到任何其他有此问题的人

同样有点奇怪的是,我有一个ElasticSearch域,但它给了我一个CloudSearch错误消息,因为我认为这些是不同的服务,尽管我认为其中一个是根据另一个实现的


谢谢

由于一次关闭所有索引是一个危险的操作,因此在集群上默认情况下可能会禁用该操作。您需要确保
elasticsearch.yml
配置文件不包含以下内容:

action.destructive_requires_name: true
您可以在配置文件中设置这一点,然后重新启动集群,但我强烈建议不要这样做,因为这会打开所有其他破坏性操作的大门,例如一次删除所有索引

action.destructive_requires_name: false
您应该做的是使用临时更新集群设置

curl -XPUT localhost:9200/_cluster/settings -d '{
    "persistent" : {
        "action.destructive_requires_name" : false
    }
}'
然后关闭所有索引

curl -XPOST localhost:9200/_all/_close
然后将设置重置为更安全的值:

curl -XPUT localhost:9200/_cluster/settings -d '{
    "persistent" : {
        "action.destructive_requires_name" : true
    }
}'

AWS Elasticsearch不支持对索引执行“关闭”操作


“目前,Amazon ES不支持Elasticsearch _CloseAPI”

很好的发现,您是否就此问题直接联系了AWS?BMW:我在尝试发布到他们的论坛时也遇到了一个(更一般的)错误:PAWS ES是一项更高级别的服务,不提供对
elasticsearch.yml
的直接访问。当我尝试这样设置
/\u集群/设置时,我得到一个“不允许有效负载”错误。你至少能够使用
/your\u index/\u close
关闭一个索引吗?你的回答给了我一个想法。我正在从我的客户机库中执行
.close(index=index\u NAME)
,但出于某种原因,它似乎像
/\u all/\u close
一样触动了网络。所以我尝试了
curl-XPOST-host/my_index/\u close
,AWS报告说这“也是CloudSearch不允许的”。该死。你能运行这个:
curl-XGET-host/\u-cluster/settings
?因为这似乎是允许的。不过,AWS Cloudsearch与AWS Elasticsearch不同。你确定你找到了正确的主机吗?这是我看到的唯一解释。是的,他们更改了文档。我猜他们的文档和实现团队实际上并没有相互交谈。更奇怪的是,文档历史记录中没有此更改的记录。如果要添加映射,则必须重新编制索引。有一些关于使用别名来实现这一点的好文章。基本步骤-创建读别名和写别名。将读取别名指向当前索引。使用新映射创建新索引。将写入别名指向新索引。然后将旧索引复制到新索引(从读别名读取,从写别名写入)。这涉及修改现有代码以使用别名。可以确认,从这个答案开始4年后,
\u close
仍然不受AWS Elasticsearch的支持(至少在我昨天创建的6.0实例上不受支持),但上面的链接文档中不再提到它。我们成功地使用reindex更新映射。