5

ElasticSearchにドキュメントを追加しようとしています。コマンドラインからcurlを使用しても問題はありませんが、PHPでcurlを使用すると問題が発生します。ドキュメントからこの例に従っています: http ://www.elasticsearch.org/guide/reference/api/index_.html

次のコードは私にこのエラーを与えています: {"error":"IndexMissingException[[twitter] missing]","status":404}

$search_host = '127.0.0.1';
$search_port = '9200';
$index = 'twitter';
$doc_type = 'tweet';
$doc_id = 1;

    $json_doc = array(
                "user" => "kimchy",
                "post_date" => "2012-11-15T14:12:12",
                "message" => "trying out Elastic Search"
            );
    $json_doc = json_encode($json_doc);

    $baseUri = 'http://'.$search_host.':'.$search_port.'/'.$index.'/'.$doc_type.'/'.$doc_id;

    $ci = curl_init();
    curl_setopt($ci, CURLOPT_URL, $baseUri);
    curl_setopt($ci, CURLOPT_PORT, $search_port);
    curl_setopt($ci, CURLOPT_TIMEOUT, 200);
    curl_setopt($ci, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ci, CURLOPT_FORBID_REUSE, 0);
    curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'XPUT');
    curl_setopt($ci, CURLOPT_POSTFIELDS, $json_doc);
    $response = curl_exec($ci);
4

1 に答える 1

9

curlオプションCURLOPT_CUSTOMREQUESTPUTではなくに設定する必要がありますXPUT

curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'PUT');
于 2012-12-03T14:51:12.567 に答える