我正在使用角度应用程序中的弹性搜索检索细节。当我在我的本地机器上安装弹性搜索时工作。我必须将以下行附加到elasticsearch.yml文件以使其与angularApp一起使用。
http.cors.allow-origin: "/.*/"
http.cors.enabled: true
现在弹性搜索服务器安装了一个docker。当我在没有添加这两行的情况下运行时它也起作用。但是当我添加并重新启动弹性搜索时, 它给了我以下错误。
{1.4.2}: Setup Failed ...
- SettingsException[Failed to load settings from [file:/elasticsearch/config/elasticsearch.yml]]
ScannerException[while scanning a simple key; could not found expected ':'; in 'reader', line 7, column 3:
http.cors.enabled: true
^]
org.elasticsearch.common.settings.SettingsException: Failed to load settings from [file:/elasticsearch/config/elasticsearch.yml]
at org.elasticsearch.common.settings.ImmutableSettings$Builder.loadFromStream(ImmutableSettings.java:947)
at org.elasticsearch.common.settings.ImmutableSettings$Builder.loadFromUrl(ImmutableSettings.java:931)
at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareSettings(InternalSettingsPreparer.java:77)
at org.elasticsearch.bootstrap.Bootstrap.initialSettings(Bootstrap.java:106)
at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:177)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32)
Caused by: while scanning a simple key
in 'reader', line 6, column 3:
http.cors.allow-origin:"/.*/"
^
这是服务器上的Elasticsearch.yml文件
答案 0 :(得分:4)
至少有两个可能的问题,这些问题并不相互排斥:
首先:
http.cors.allow-origin:"/.*/"
应该是
http.cors.allow-origin: "/.*/"
因为YAML表示法需要:
与键值对值之间的空格分隔。
其次,您提供的错误跟踪表明http.cors.allow-origin: "/.*/"
前面的前导空格与每个正确的YAML表示法的块不一致。如果存在http.cors.allow-origin: "/.*/"
,则http
更有可能缺少前导空格(因为我认为{{1}}通常是Elasticsearch配置文件中的顶级块)。