也许我很胖,但我似乎找不到从命令行传递ES配置文件路径的方法。我一直在搜索和阅读45分钟(包括Stack Overflow上的几篇文章),并且所提议的解决方案都不起作用。
以下是我尝试的内容:
elasticsearch -Des.config = / path / to / my / elasticsearch.yml ==>错误:D不是公认的选项
elasticsearch -Ees.config = / path / to / my / elasticsearch.yml ==> org.elasticsearch.bootstrap.StartupException:java.lang.IllegalArgumentException:未知设置[es.config]请检查是否安装了所有必需的插件,或者检查中断更改文档以了解已删除的设置
elasticsearch -Econfig = / path / to / my / config.yml ==> org.elasticsearch.bootstrap.StartupException:java.lang.IllegalArgumentException:未知设置[config]请检查是否安装了所有必需的插件,或者检查中断更改文档以了解已删除的设置
elasticsearch -Epath.conf = / path / to / config / dir / with / elasticsearch.yml ==>没有例外,但程序终止时没有任何输出(没有错误消息)。由于我没有指定-d选项,我假设它没有作为守护进程运行,因此,ES服务器在结束时没有运行。
有人能把我从泥泞中拉出来吗?
THX。
答案 0 :(得分:0)
我也为同样的问题而苦苦挣扎,并尝试了与您相同的命令。这里的问题是由于弹性搜索的版本引起的。
如果您的版本高于5.0.0,并且根据this,则以上命令均无效。而且看起来他们限制了可以从命令行传递的参数的类型。
最简单的方法是仅 cd 到您安装elasticsearch的目录,然后只是 ./ bin / elasticsearch (请确保您不以root身份执行它,它不允许您以root用户身份运行。)
这里的问题是,在每个新版本的ES之后,都会删除/更新某些较旧的功能,这令人沮丧。我目前正在使用Elasticsearch v6.4.0,目前为止可以使用。