Я использую Laravel 5 и хочу подключиться к Solr 5 с ним. Я скачал солярий с помощью композитора. Но когда я пытаюсь подключиться, выдает ошибку.
Что работает
В моем контроллере (только сейчас) я сделал это:
public function __construct()
{
$config = array(
'endpoint' => array(
'localhost' => array(
'host' => '127.0.0.1',
'port' => 8983,
'path' => '/solr/my_solr_instance',
)
)
);
// create a client instance
$this->client = new \Solarium\Client($config);
}
Тогда где-то еще я делаю это:
$temp = $this->client;
// get a select query instance
$query = $temp->createQuery($temp::QUERY_SELECT);
// this executes the query and returns the result
$resultset = $temp->execute($query);
// display the total number of documents found by solr
echo 'NumFound: '.$resultset->getNumFound();
Пока это работает. Возвращает правильное число 1:
NumFound: 1
проблема
Теперь я изменил создание экземпляра на:
$this->client = new \Solarium\Client(\Config::get('solr'));
Я добавил этот код в конфиг / database.php файл:
'solr' => [
'endpoint' => [
'localhost' => [
'host' => '127.0.0.1',
'port' => 8983,
'database' => '/solr/my_solr_instance',
],
],
],
Затем, когда я снова запускаю скрипт, он говорит:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Error 404 Not Found</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /solr/select. Reason:
<pre> Not Found</pre></p><hr><i><small>Powered by Jetty://</small></i><hr/>
</body>
</html>
Я хотел бы ожидать, что я могу установить соединение для solr в файле database.php и его переменные в файле .env.
Как я могу решить эту проблему?
Решение
С помощью Богдана это решение:
$this->client = new \Solarium\Client(\Config::get('database.solr'));
В файле database.php:
'solr' => [
'endpoint' => [
'localhost' => [
'host' => '127.0.0.1',
'port' => 8983,
'path' => '/solr/my_solr_instance',
],
],
],
Я считаю, что вам нужно получить база данных конфигурации:
Config::get('database.solr')
Других решений пока нет …