--- a/solr.php +++ b/solr.php @@ -1,1 +1,60 @@ +createPing(); + +// execute the ping query +try { + $result = $solr_client->ping($ping); + echo 'Ping query successful'; + echo '
';
+    var_dump($result->getData());
+    echo '
'; +} catch (Solarium\Exception $e) { + echo 'Ping query failed'; +} + + +$update = $solr_client->createUpdate(); +$update->addCommit(); + +// this executes the query and returns the result +$result = $solr_client->update($update); + +echo 'Update query executed
'; +echo 'Query status: ' . $result->getStatus(). '
'; +echo 'Query time: ' . $result->getQueryTime(); + +$buffer = $solr_client->getPlugin('bufferedadd'); +$buffer->setBufferSize(500); +$page = 583728; +while ($conn) { + echo ($page++).PHP_EOL; + $stmt = $conn->prepare('SELECT * FROM contractnotice ORDER BY "CNID" LIMIT 1000 OFFSET '.($page*1000)); + $stmt->execute(); + $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); +foreach ($rows as $row) { + + +// create a new document for the data +$data = array("id" => $row["CNID"]); +foreach ($row as $key => $value) { +if ($key != 'atmID' && $key != 'CNID' && $key != 'supplierPostcode' && $key != 'contactPostcode') { +if ($key == 'value') { +$value = intval($value); +} +if ($key == 'publishDate' || $key == 'importDate') { +$value = explode(" ",$value)[0]; +} +$value = preg_replace( '/[^[:print:]]/', '',$value); +$data[$key] = $value; +} +//print_r($data); + $buffer->createDocument($data); +} +} +} +$buffer->flush(); +