Checking Solr query logs
We have now been able to execute a ping query on Solr using the Solarium library. To see how this works, open up Tomcat logs. It can be found at <tomcat_path>/logs/solr.log
or <tomcat_path>/logs/catalina.out
. On Linux, we can do a tail of the log to see fresh entries as they appear:
tail –f solr.log
On running the cURL-based PHP code that we wrote earlier, we can see the following hits in the log:
INFO - 2013-06-25 19:51:16.389; org.apache.solr.core.SolrCore; [collection1] webapp=/solr path=/admin/ping/ params={wt=json} hits=0 status=0 QTime=2 INFO - 2013-06-25 19:51:16.390; org.apache.solr.core.SolrCore; [collection1] webapp=/solr path=/admin/ping/ params={wt=json} status=0 QTime=3
On running the Solarium-based code, we get similar output but with an additional parameter omitHeader=true
. This parameter causes the response header to be ignored in the output.
INFO - 2013-06-25 19:53:03.534; org.apache.solr.core.SolrCore; [collection1] webapp=/solr path=/admin/ping params={omitHeader=true&wt=json} hits=0 status=0 QTime=1 INFO - 2013-06-25 19:53:03.534; org.apache.solr.core.SolrCore; [collection1] webapp=/solr path=/admin/ping params={omitHeader=true&wt=json} status=0 QTime=1
So eventually, Solarium also creates a Solr URL and makes a cURL call to Solr to fetch the results. How does Solarium know which Solr server to hit? This information is provided in the endpoint settings in the $config
parameter.