Based on the example here (and other places), I am attempting to add a record to a simple Solr index (the only fields are src
and dest
, both single value string fields, and solrconfig is set to auto generate the id
value) via PHP and cURL using the following code:
$data = array(
"add" => array(
"doc" => array(
"src" => $src,
"dest" => $dest
),
"commitWithin" => 1000,
),
);
$data_string = json_encode(array($data));
$add_url = 'https://my-solr-url.com/solr/my_index/update?commit=true&wt=json';
$add_ch = curl_init($add_url);
curl_setopt($add_ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($add_ch, CURLOPT_POST, 1);
curl_setopt($add_ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
curl_setopt($add_ch, CURLOPT_POSTFIELDS, $data_string);
$add_response = json_decode(curl_exec($add_ch));
curl_close($add_ch);
However, when I run it, I get the following error:
Error parsing JSON field value. Unexpected OBJECT_START at [16], field=add
Based on the Solr docs, I tried the following variation:
$data = array(
'src' => $src,
'dest' => $dest
);
$data_string = json_encode(array($data));
$add_url = 'https://my-solr-url.com/solr/my_index/update/json/docs?commit=true&wt=json';
$add_ch = curl_init($add_url);
curl_setopt($add_ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($add_ch, CURLOPT_POST, 1);
curl_setopt($add_ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
curl_setopt($add_ch, CURLOPT_POSTFIELDS, $data_string);
$add_response = json_decode(curl_exec($add_ch));
curl_close($add_ch);
But now I get an error about Unknown field src
. From what I can see, Im following the docs, but nothing works. What do I need to change?