我已成功将弹性搜索(Elasticsearch 6.0)与Magento Enterprise Edition 2.1集成。根据他们的文档,我尝试使用magento cli命令
重新索引calalogbin/magento indexer:reindex catalogsearch_fulltext
但它会抛出像
这样的错误Catalog Search indexer process unknown error:
Content-Type header [] is not supported
我读过,Elasticsearch 6.0实现了严格的内容类型检查。那我怎样才能在Magento EE 2.1中解决这个问题呢?
答案 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)
];