<?php // make sure browsers see this page as utf-8 encoded HTML header('Content-Type: text/html; charset=utf-8'); $limit = 10; $query = isset($_REQUEST['q']) ? $_REQUEST['q'] : false; $results = false; if ($query) { // The Apache Solr Client library should be on the include path // which is usually most easily accomplished by placing in the // same directory as this script ( . or current directory is a default // php include path entry in the php.ini) require_once('Apache/Solr/Service.php'); // create a new solr service instance - host, port, and webapp // path (all defaults in this example) $solr = new Apache_Solr_Service('localhost', 8983, '/solr/'); if ( ! $solr->ping() ) { echo 'Solr service not responding.'; exit; } // if magic quotes is enabled then stripslashes will be needed if (get_magic_quotes_gpc() == 1) { $query = stripslashes($query); } // in production code you'll always want to use a try /catch for any // possible exceptions emitted by searching (i.e. connection // problems or a query parsing error) try { $results = $solr->search($query, 0, $limit); } catch (Exception $e) { // in production you'd probably log or email this error to an admin // and then show a special message to the user but for this example // we're going to show the full exception die("<html><head><title>SEARCH EXCEPTION</title><body><pre>{$e->__toString()}</pre></body></html>"); } } ?> <html> <head> <title>PHP Solr Client Example</title> </head> <body> <form accept-charset="utf-8" method="get"> <label for="q">Search:</label> <input id="q" name="q" type="text" value="<?php echo htmlspecialchars($query, ENT_QUOTES, 'utf-8'); ?>"/> <input type="submit"/> </form> <?php // display results if ($results) { $total = (int) $results->response->numFound; $start = min(1, $total); $end = min($limit, $total); ?> <div>Results <?php echo $start; ?> - <?php echo $end;?> of <?php echo $total; ?>: </div> <ol> <?php // iterate result documents foreach ($results->response->docs as $doc) { ?> <li> <table style="border: 1px solid black; text-align: left"> <?php // iterate document fields / values foreach ($doc as $field => $value) { ?> <tr> <th> <?php echo htmlspecialchars($field, ENT_NOQUOTES, 'utf-8'); ?> </th> <td> <?php if(is_array($value)){ foreach ($value as $v){ echo htmlspecialchars($v, ENT_NOQUOTES, 'utf-8'). "<br>"; } } else{ echo htmlspecialchars($value, ENT_NOQUOTES, 'utf-8'); } ?> </td> </tr> <?php } ?> </table> </li> <?php } ?> </ol> <?php } ?> </body> </html>
<?php require_once('Apache/Solr/Service.php'); $solr = new Apache_Solr_Service( 'localhost', '8983', '/solr' ); if ( ! $solr->ping() ) { echo 'Solr service not responding.'; exit; } $docs = array( "num1" => array( "id" =>"Chester009", "name" => "cheser add a name", "manu" => "ViewSonic Corp.", "cat" => "elec1", "features" => "features1", "weight" => 1457, "price" => 44, "popularity" => 8, ), "num2" => array( "id" =>"Chester010", "name" => "cheser add a name2", "manu" => "ViewSonic Corp2.", "cat" => "elec12", "features" => "features12", "weight" => 14572, "price" => 442, "popularity" => 82, ), "num3" => array( "id" =>"Chester011", "name" => "cheser add a name2", "manu" => "ViewSonic Corp2.", "cat" => "elec12", "features" => "features12", "weight" => 14572, "price" => 442, "popularity" => 82, ), "num6" => array( "id" =>"Chester012", "name" => "cheser add a name2", "manu" => "ViewSonic Corp2.", "cat" => "elec12", "features" => "features12", "weight" => 14572, "price" => 442, "popularity" => 82, ), "num7" => array( "id" =>"Chester014", "name" => "cheser add a name2", "manu" => "ViewSonic Corp2.", "cat" => "elec12", "features" => "features12", "weight" => 14572, "price" => 442, "popularity" => 82, ), "num8" => array( "id" =>"Chester019", "name" => "cheser add a name2", "manu" => "ViewSonic Corp2.", "cat" => "elec12", "features" => "features12", "weight" => 14572, "price" => 442, "popularity" => 82, ), ); $documents = array(); foreach ( $docs as $item => $fields ) { $part = new Apache_Solr_Document(); foreach ( $fields as $key => $value ) { if ( is_array($value) ) { foreach ( $value as $data ) { $part->setMultiValue($key,$data); } } else{ $part->$key = $value; } } $documents[] = $part; } try{ $a = $solr->addDocuments( $documents ); $b = $solr->commit(); $c = $solr->optimize(); var_dump($a); print "<br><br><br><br><br><br>" ; var_dump($b); print "<br><br><br><br><br><br>" ; var_dump($c); } catch (Exception $e){ echo $e->getMessage(); } ?>
<?php require_once('Apache/Solr/Service.php'); $solr = new Apache_Solr_Service( 'localhost', '8983', '/solr' ); if ( ! $solr->ping() ) { echo 'Solr service not responding.'; exit; } $offset = 0; $limit = 10; $queries = array( 'id: Chester005 OR id: Chester001', 'name: name', 'features: feature' ); foreach ( $queries as $query ){ $response = $solr->search( $query, $offset, $limit ); if ( $response->getHttpStatus() == 200 ) { // print_r( $response->getRawResponse() ); if ( $response->response->numFound > 0 ) { echo "$query <br />"; foreach ( $response->response->docs as $doc ) { echo "id= $doc->id <br> name = $doc->name <br /> manu= $doc->manu <br>"; } echo '<br />'; } } else { echo $response->getHttpStatusMessage(); } } ?>