Executing ping queries on Solr using PHP and Solarium library
For using the Solarium library, we need to load the Solarium library in our PHP code. Let us see how to execute the same ping query that we fired earlier using PHP and Solarium.
Note
We have installed Solarium inside the code
folder in our Apache documentroot
. Apache documentRoot
points to ~/htdocs
(inside our home folder).
First include the Solarium library in our code using the following line of code:
include_once("vendor/autoload.php");
Create a Solarium configuration array that defines how to connect to Solr.
$config = array( "endpoint" => array("localhost" => array("host"=>"127.0.0.1", "port"=>"8080", "path"=>"/solr", "core"=>"collection1",) ) );
Solarium has the concept of endpoints. An endpoint is basically a collection of settings that can be used to connect to a Solr server and a core. For each query that we execute via Solarium, we can specify an endpoint using which we want to execute the query. If no endpoint is specified, the query is executed using the first endpoint, which is the default endpoint. The benefit of using endpoints is that we need to create a single Solarium client instance irrespective of the number of servers or cores we use.
Create the Solarium client with the configuration we created earlier. And call the createPing()
function to create the ping query.
$client = new Solarium\Client($config); $ping = $client->createPing();
Finally execute the ping query and get the result using the following command:
$result = $client->ping($ping); $result->getStatus();
It can be seen that the result is an array. But we can also call the getStatus()
function to get the ping's status. We can execute the code using PHP command line or call the following URL to see the result:
http://localhost/code/pingSolarium.php