Magento 2 EE elasticsearch不支持Content-Type标头

时间:2017-11-22 12:23:15

标签: magento elasticsearch magento2 catalog magento2.2

我已成功将弹性搜索(Elasticsearch 6.0)与Magento Enterprise Edition 2.1集成。根据他们的文档,我尝试使用magento cli命令

重新索引calalog
bin/magento indexer:reindex catalogsearch_fulltext

但它会抛出像

这样的错误
Catalog Search indexer process unknown error:
Content-Type header [] is not supported

我读过,Elasticsearch 6.0实现了严格的内容类型检查。那我怎样才能在Magento EE 2.1中解决这个问题呢?

2 个答案:

答案 0 :(得分:0)

根据Magento EE documentation,它们支持Elasticsearch版本1.4,1.7和2.4。默认版本为1.7。

但是我试图整合最新版本的elasticsearch(Elasticsearch 6.0)。我已经安装了elasticsearch 2.4并且现在工作正常。

答案 1 :(得分:0)

模块中的问题 - magento/module-elasticsearch。 在此模块中"composer.json" contain "elasticsearch/elasticsearch": "~2.0"。而且他不支持Elasticsearch 6.0。

对于版本6,要发送的标头中应该有一个附加参数“Content-Type” https://github.com/elastic/elasticsearch-php/commit/fd3b0f16f7e09cb2096ef5f2d656c9fd8dd3d61d#diff-1b0215334399d80759820e3229367adf

https://github.com/elastic/elasticsearch-php/blob/master/src/Elasticsearch/Connections/Connection.php,第159行,$this->headers

   $request = [
    'http_method' => $method,
    'scheme'      => $this->transportSchema,
    'uri'         => $this->getURI($uri, $params),
    'body'        => $body,
    'headers'     => array_merge([
    'Host'  => [$this->host]
    ], $this->headers)
    ];