私は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'));
config/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>
database.php ファイル内で solr への接続を設定し、その変数を .env ファイルに設定できると思います。
この問題を解決するにはどうすればよいですか?
解決
Bogdan の助けを借りて、これが解決策です。
$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',
],
],
],