【问题标题】:ElasticSearch 6.1 plugin custom settingsElasticSearch 6.1 插件自定义设置
【发布时间】:2018-01-12 21:16:32
【问题描述】:

我正在尝试编写的弹性搜索插件有问题...基本上我需要自己的设置(例如作为系统道具传入或在 elasticsearch.yml 中定义)...最初我开始用于开发和测试的早期版本的弹性搜索,但由于我已经升级到 6.1.1。 但是...现在我的设置由我的插件加载,但随后立即验证失败... org.elasticsearch.bootstrap.StartupException: "java.lang.IllegalArgumentException: 未知设置 [my.setting] 请检查是否安装了任何必需的插件,或检查已删除设置的重大更改文档"

重大更改 5.4 (https://www.elastic.co/guide/en/elasticsearch/reference/5.4/breaking_50_settings_changes.html) 中的文档说 “从 Elasticsearch 5.0 开始,所有设置在应用之前都经过验证。节点级别和默认索引级别设置在节点启动时进行验证,动态集群和索引设置在更新/添加到集群状态之前进行验证。

每个设置都必须是已知设置。所有设置都必须已在与其一起使用的节点或传输客户端中注册。这意味着定义自定义设置的插件必须在插件加载期间使用 SettingsModule#registerSettings(Setting) 方法注册其所有设置。"

但是...SettingsModule#registerSettings(Setting) 是私有的...据我所知,自从它被引入以来一直是...我错过了什么?

【问题讨论】:

    标签: elasticsearch elasticsearch-plugin


    【解决方案1】:

    比我想象的要简单...赞

    我的插件已经扩展了 org.elasticsearch.plugins.Plugin,我只需要通过覆盖提供我需要“注册”的任何设置 插件中的公共列表> getSettings()。 感谢 Ivan Brusic 在 ElasticSearch 论坛上为我指明了正确的方向。

    【讨论】:

    • 您能否详细说明您是如何注册自定义设置的? IE。您将设置保存在哪里(存档?)以及您对getSettings() 的实现是什么样的?
    猜你喜欢
    • 2014-10-05
    • 2022-08-10
    • 2017-02-23
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多