我在带有FOSElasticaBundle的Symfony项目中使用elasticsearch,这需要ruflin/elastica客户端。为了创建索引,我使用FOSElasticaBundle的command suggested in the documentation,在我的本地计算机上一切正常。
当我将项目部署到heroku时,同一命令失败并引发以下错误:
elastica.ERROR: Elastica Request Failure {"exception":"[object] (Elastica\\Exception\\Connection\\HttpException(code: 0): Couldn't resolve host at /app/vendor/ruflin/elastica/lib/Elastica/Transport/Http.php:186)","request":{"path":"index_name/","method":"DELETE","data":[],"query":[],"connection":{"config":{"headers":[],"curl":[]},"host":"https://username:password@host","port":"443","logger":"fos_elastica.logger","compression":false,"retryOnConflict":0,"enabled":false}},"retry":false}
这似乎强调了与Elasticsearch主机的连接问题。奇怪的是,当我尝试从heroku机器手动连接到该主机时,一切似乎都工作正常。
执行中:
curl -X GET host:port/
给我这个回应:
{
"name" : "Alex Power",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "2.4.0",
"build_hash" : "079e104a99267f24d3689297eb16466170b00ebc",
"build_timestamp" : "2016-10-04T20:50:33Z",
"build_snapshot" : false,
"lucene_version" : "5.5.2"
},
"tagline" : "You Know, for Search"
}
在heroku上,我使用的是bonsai add-on,但我还尝试了AWS Elasticsearch服务,以及具有不同版本 bundle 包和ruflin / elastica客户端的所有内容。
重现问题:主机始终可以正常工作,但是ruflin客户端似乎无法与它联系。
我唯一能想到的是 bundle 软件的配置错误,但是我按照文档中的每个步骤进行操作,所以我不知道在哪里看,此刻我感到迷茫。
编辑:
我只是将项目设置为在本地docker容器和日志中运行,我看到以下错误:
[2017-04-08 09:45:00] request.CRITICAL: Uncaught PHP Exception Elastica\Exception\Connection\HttpException: "Couldn't connect to host, Elasticsearch down?" at /var/www/vendor/ruflin/elastica/lib/Elastica/Transport/Http.php line 180 {"exception":"[object] (Elastica\\Exception\\Connection\\HttpException(code: 0): Couldn't connect to host, Elasticsearch down? at /var/www/vendor/ruflin/elastica/lib/Elastica/Transport/Http.php:180)"} []
我一直认为这只是一个配置问题,因为我检查了curl和elasticsearch是否正常运行。
最佳答案
我使用以下配置解决了这个问题:clients: default: host: **** port: **** transport: Https headers: Authorization: "Basic ************"
授予授权 token 的位置:echo -n "user:password" | base64
关于elasticsearch - 用ruflin/elastica重置索引在heroku上抛出HttpException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43216505/