I use PHP Solr extension and it when I run the code below I get the exception:
Fatal error: Uncaught exception 'SolrClientException' with message 'Unsuccessful query request : Response Code 404.
I do not understand, what is wrong, I also use Solr client successfully.
include "bootstrap.php";
$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);
$client = new SolrClient($options);
$query = new SolrQuery();
$query->setQuery('lucene');
$query->setStart(0);
$query->setRows(50);
$query->addField('cat')->addField('features')->addField('id')-> addField('timestamp');
$query_response = $client->query($query);
$response = $query_response->getResponse();
print_r($response);
?>
my bootstrap.php file is:
<?php
/* Domain name of the Solr server */
//define('SOLR_SERVER_HOSTNAME', 'solr.example.com');//solr.example.com
define('SOLR_SERVER_HOSTNAME', 'localhost');//solr.example.com
define('SOLR_SECURE', true);
/* HTTP Port to connection */
//define('SOLR_SERVER_PORT', ((SOLR_SECURE) ? 8443 : 8983));
define('SOLR_SERVER_PORT', ((SOLR_SECURE) ? 8080 : 8443));
/* HTTP Basic Authentication Username */
define('SOLR_SERVER_USERNAME', '');//admin
/* HTTP Basic Authentication password */
define('SOLR_SERVER_PASSWORD', '');//changeit
/* HTTP connection timeout */
/* This is maximum time in seconds allowed for the http data transfer operation. Default value is 30 seconds */
define('SOLR_SERVER_TIMEOUT', 10);
/* File name to a PEM-formatted private key + private certificate (concatenated in that order) */
define('SOLR_SSL_CERT', 'certs/combo.pem');
/* File name to a PEM-formatted private certificate only */
define('SOLR_SSL_CERT_ONLY', 'certs/solr.crt');
/* File name to a PEM-formatted private key */
define('SOLR_SSL_KEY', 'certs/solr.key');
/* Password for PEM-formatted private key file */
define('SOLR_SSL_KEYPASSWORD', 'StrongAndSecurePassword');
/* Name of file holding one or more CA certificates to verify peer with*/
define('SOLR_SSL_CAINFO', 'certs/cacert.crt');
/* Name of directory holding multiple CA certificates to verify peer with */
define('SOLR_SSL_CAPATH', 'certs/');
I had a similar error message when I query Solr.
The error came from that I am using a collection and therefore you need to specify it in your configuration:
$options = array
(
'hostname' => 'localhost',
'login' => '',
'password' => '',
'port' => 8983,
'path' => 'solr/collection', // <-- Add your collection here
);
What I can see as a problem is the line
define('SOLR_SERVER_PORT', ((SOLR_SECURE) ? 8080 : 8443));
is your secure connection using port 8080 or 8443? I assume that the normal connection is 8080 and secure is 8443, but the line implies the opposite, the secure port is 8080 and normal one is 8443
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With