Elasticsearch 8.1使用laravel我的elasticsearch示例运行在端口9200。https://localhost:9200
返回我
{
"name" : "node-1",
"cluster_name" : "my-application",
"cluster_uuid" : "7wIGGqhBS5OXfV0E4J53GQ",
"version" : {
"number" : "8.0.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "801d9ccc7c2ee0f2cb121bbe22ab5af77a902372",
"build_date" : "2022-02-24T13:55:40.601285296Z",
"build_snapshot" : false,
"lucene_version" : "9.0.0",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
在Laravel中,我有以下几行代码。
$hosts = [
'http://127.0.0.1:9200',
];
$client = ClientBuilder::create()
->setSSLVerification(false)
->setHosts($hosts)
->build();
$params = [
'index' => 'sample_index',
'id' => 'sample_id',
'body' => [
'name' => 'Sample Product',
'description' => 'My description...',
'price' => '3400',
'stock' => '150',
]
];
$response = $client->index($params);
dump($response);
我得到的$response
是No alive nodes. All the 1 nodes seem to be down.
从上面的dump命令中,这是一个请求,不是请求9200(不确定这是否正确)。
2条答案
按热度按时间bkkx9g8r1#
我也有同样的问题。在python中一切都很好,但在php代码中总是出现这个错误。然后谷歌周围让我下面的文章,一个人有类似的问题
https://github.com/elastic/elasticsearch-php/issues/1120
助手最后指出他需要允许您的httpd连接到网络,并引用了以下解决方案页面:
通过浏览器拒绝了CURL权限,适用于ssh
上面提到的解决方案是在php.ini文件中添加以下行
setsebool -P httpd_can_network_connect 1
然而,对我来说,当我在命令行上用sudo执行这个命令时,它工作了。
希望对你也有效
qgzx9mmu2#
我有同样的问题,在我的情况下,问题是一个不正确的网址,因为它以某种奇怪的方式对待,不能正确地获得传输方案。为了调试我转储异常与
由于Transport.php是异常堆栈中的第一个,我去调试这个文件,发现看到发生错误的唯一方法是将记录器传递给客户端构建器。我懒得去找合适的类,所以我只是用老方法来调试我改变Transport.php:
我的错误是:
原因是它在解析.env文件时没有删除引号