通过elasticsearch-php在Laravel 5上使用Shift31/laravel-elasticsearch(为elasticsearch-php提供外观)。在Facetflow上托管ES实例。
配置/ elasticsearch.php:
return array(
'hosts' => array(
'https://accessUsername@ilovelasagna.east-us.azr.facetflow.io:443'
)
);
WelcomeController.php:
public function elasticsearch()
{
$searchParams['index'] = 'your_index';
$searchParams['size'] = 50;
$searchParams['body']['query']['query_string']['query'] = 'foofield:barstring';
return Es::search($searchParams);
// throws Authentication401Exception exception
}
返回Authentication401Exception 。我的猜测是用户名未传递给Facetflow服务器,但我还没有找到一种方法来检查这是否属实。
问题似乎不在服务器的设置中,因为当我使用普通卷曲时,我得到200响应:
public function justCurl()
{
$ch = curl_init();
// Now set some options (most are optional)
// Set URL to download
curl_setopt($ch, CURLOPT_URL, "https://accessUsername@ilovelasagna.east-us.azr.facetflow.io:443");
// Download the given URL, and return output
$output = curl_exec($ch);
// Close the cURL resource, and free system resources
curl_close($ch);
return $output;
// returns 200 response
}
如何解决此问题?
答案 0 :(得分:0)
Facetflow炙手可热的客户支持指出了这个问题。 主机应该被标记为
'https://accessUsername:@ilovelasagna.east-us.azr.facetflow.io:443'
请注意accessUsername之后的冒号。