Asif S. Abid Asif S. Abid - 4 years ago 140
Apache Configuration Question

indexing documents in Apache Solr using php-curl library

I am indexing the file using php curl library. I am stuck here with the code

echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
$result=move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);
if ($result == 1) echo "<p>Upload done .</p>";
$options = getopt("f:");
$infile = $options['f'];

$url = "http://localhost:8983/solr/update/";
$filename = "upload/" . $_FILES["file"]["name"];
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
echo $url;
$post_string = file_get_contents("upload/" . $_FILES["file"]["name"]);
echo $contents;
$header = array("Content-type:text/xml; charset=utf-8");

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
curl_setopt($ch, CURLINFO_HEADER_OUT, 1);

$data = curl_exec($ch);

if (curl_errno($ch)) {
print "curl_error:" . curl_error($ch);
} else {
print "curl exited okay\n";
echo "Data returned...\n";
echo "------------------------------------\n";
echo $data;
echo "------------------------------------\n";

Nothing is showing as a result. Moreover there is nothing shown in the event log of Apache Solr.
please help me with the code

Answer Source

In the $post_string that you read from your uploaded file, does that file end with a <commit />? Without that nothing will get committed to Solr so make sure your set of commands ends with <commit />.

Also, I would highly not recommend this way of updating files. If someone unscrupulous figures out your pipeline and how to run this file, they can easily wreak havoc with your Solr index.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download