Перед настройкой solr 3.6 на моем сервере я начал работать над Bitnami Solr Stack 5.0.Запрос на обновление Solr 5.3 VS Solr 3.6 (с использованием php curl и json)
Вот как я индексировать мои данные:
$ch = curl_init(SOLR_HOST . SOLR_CORE_PRODUCTS . "/update?wt=json&commitWithin=4000&debugQuery=true&overwrite=&true&commit=true");
$json = array(array("Field" => "value", "Field2" => "value2"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $js);
$response = curl_exec($ch);
Теперь, давайте сосредоточимся на человека в Solr
Solr 3.1 Пример
Solr 3.2 была первой версией, поддерживают синтаксис массива JSONObject, поэтому в Solr 3.1 нужно использовать повторяющиеся имена (тег «add»), чтобы добавить сразу несколько документов. В JSON законно иметь повторяющиеся имена. Пример:
curl http://localhost:8983/solr/update/json -H 'Content-type:application/json' -d '
{
"add": {"doc": {"id" : "TestDoc1", "title" : "test1"} },
"add": {"doc": {"id" : "TestDoc2", "title" : "another test"} }
}'
Я думал, что:
$ch = curl_init(SOLR_HOST . SOLR_CORE_PRODUCTS . "/update?wt=json&commitWithin=4000&debugQuery=true&overwrite=&true&commit=true");
$json = array("add: " => array("doc:" =>array("Field" => "value", "Field2" => "value2")));
$js = json_encode($json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $js);
$response = curl_exec($ch);
будет делать эту работу. $ JS имеет значение: {"add: ":{"doc:":{"Field":"value","Field2":"value2"}}}
И ошибка:
сообщение Неожиданный символ '{' (код 123) в прологе; ожидаемый «<» в [row, col {unknown-source]]: [1,1]
Любые идеи?