【问题标题】:Elastic Search using PHP not working使用 PHP 的弹性搜索不起作用
【发布时间】:2014-03-27 03:17:14
【问题描述】:

我是弹性搜索的初学者。
我想使用 Curl 在 php 中创建一个节点

curl -XPUT "http://localhost:9200/movies/movie/1" -d'
{
    "title": "The Godfather",
    "year": 1972
}'

不使用像 elastica 这样的任何开源,我想实现上述 CURL,
我试过这个-

<?
$url='curl -XPUT "http://localhost:9200/movies/movie/1" -d\' { "title": "The Godfather","year": 1972}\'';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
ob_start();
curl_exec ($ch);
curl_close ($ch);
$data = ob_get_contents();
ob_end_clean();
var_dump($data);
?>


但是它既没有给出任何输出,也没有创建节点。有什么问题?
对于初始使用,我想要最简单的 php。我不想使用elastica 或任何其他。

【问题讨论】:

    标签: php curl elasticsearch


    【解决方案1】:

    这是等效的 curl 代码:

    $url='http://localhost:9200/movies/movie/1';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, '{"title": "The Godfather","year": 1972}');
    curl_setopt($ch, CURLOPT_HTTPHEADER,array("Content-Type: appliaction/json"));
    $result = curl_exec($ch);
    curl_close($ch);
    

    【讨论】:

    • 删除回显 CURLOPT_POST 并将其替换为 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');让它对我有用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多