【问题标题】:Update custom synonyms package version on AWS Elasticsearch domain更新 AWS Elasticsearch 域上的自定义同义词包版本
【发布时间】:2021-08-02 11:30:20
【问题描述】:

我们正在使用 AWS 的 elasticsearch 服务。我们有一个与弹性搜索域关联的自定义同义词包。该文件位于 s3 存储桶中,当文件更新时,它会触发一个更新 AWS 中的包版本的 lambda。我们遵循https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/custom-packages.html 的文档,到目前为止,所有这些都非常适合上传和更新包的新版本。但是,aws elasticsearch 自定义包的工作方式是,使用自定义包的每个域也存储自己的文件副本。为了让搜索行为保持可预测性,域会继续使用其当前的包版本,直到您明确更新它们。

问题是我找不到任何方法来以编程方式告诉域使用新版本的包。这就像在控制台中单击 2 次,但我终其一生都无法从我的自动化代码中找到一种方法。 update_package 方法只是更新包版本,它不会告诉关联的域使用新版本。

我们正在寻找一种以编程方式告诉 AWL 弹性搜索域更新关联自定义同义词文件版本的方法。

【问题讨论】:

  • 你试过_opendistro/_refresh_search_analyzers API吗? (在第 6 点中描述了 here
  • 我做到了 - 我认为这告诉索引使用新版本的包,但实际上仍然没有使新版本在 aws 域上可用。我这里的理解是,当你进入aws控制台,选择域,选择包,点击update package它会将新版本的包上传到域,然后调用_opendistro/_refresh_search_analyzers。这是我努力实现自动化的第一部分。

标签: amazon-web-services elasticsearch aws-elasticsearch


【解决方案1】:

因此,在这几天苦苦思索之后,我终于在发布此问题 5 分钟后弄明白了。您只需在更新包后再次调用associate_package 方法即可。我之前实际上已经尝试过,但它失败了,但如果没有可用的新版本的软件包,它就会失败。我想我在update_package方法完成之前又调用了associate_package,所以新版本还没有。

无论如何,希望这对将来的人有所帮助。

【讨论】:

  • 是的,我实际上在 AWSSDK java GitHub 上打开了一个关于此的问题,因为从文档中并不清楚该怎么做。我遇到的问题是我的分析器实际上根本没有更新......我确实看到令牌过滤器得到了更新,但即使调用“_refresh_search_analyzers”命令也没有;没有做任何事情。你有过类似的经历吗?
【解决方案2】:

正确,您必须专门调用 associate_package 以链接到该软件包的最新版本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 2018-11-17
    相关资源
    最近更新 更多