Как использовать солярий с Laravel?

Я включил солярий, как требуется на composer.json, сделал composer install и все прошло нормально.

Однако, когда я пытаюсь создать позицию клиента, я получаю сообщение об ошибке:

Класс "Солярий \ Клиент" не найден

Код, который я использую, выглядит так:

public function __construct()
{
    $config = array(
        'endpoint' => array(
            'localhost' => array(
                'host' => '127.0.0.1',
                'port' => 8983,
                'path' => '/solr/my_solr_instance',
                )
            )
        );

    $this->client = new \Solarium\Client($config);
}

Любые идеи о том, как это исправить?

2 ответа

После установки солярия в Laravel ..

создайте файл solr.php в конфиге

return [
    'endpoint' => [
        'Collection' => [
            'host' => '192.168.0.1',
            'port' => '8983',
            'path' => '/solr',
            'core' => 'collection1'
        ],
    ]
];

В вашей конструкции контроллера инициировать клиентский объект

// create a client instance
        $this->client = new \Solarium\Client();
        $this->endpoint =  $this->client->createEndpoint(Config::get('solr.endpoint.Collection'));

В поисковой функции

$query = $this->client->createSelect();
$query->setQuery("*:*");
$resultset = $this->client->select($query, $this->endpoint);

У меня есть новый подход для этого инициировать клиента из контроллера. Я нашел это решение здесь, так как ниже не рекомендуется публиковать полный код.

https://universaldetails.com/details/how-to-use-php-solarium-in-a-laravel-project

Я пробовал и тестировал, так что вам поможет.

Другие вопросы по тегам