2

私は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',
        ],
    ],
],
4

1 に答える 1

3

データベース構成を取得する必要があると思います:

Config::get('database.solr')
于 2015-11-29T12:45:18.340 に答える