2013-06-12 2 views
1

Я пытаюсь настроить apache solr для поиска одного из моих проектов. Я установил Solr 3.6 в моем сервере разработки и доступен сApache Solr с Php

http://127.0.0.1:8080/solr/admin/ 

Я пытался поставить пример приложения, доступные в PHP Manual, но устанавливает имя пользователя и пароль для Solr. Я не знаю, где я могу получить эту информацию. Я также попытался ниже код от сети, но я получаю ошибку 500, когда я бегу он

$options = array (
    'hostname' => '127.0.0.1', 
); 

//$client = new SolrClient($options, "4.0"); // use 4.0 for any version of Solr 4.x, ignore this parameter for previous versions 

$doc = new SolrInputDocument(); 

$doc->addField('id', 100); 
$doc->addField('title', 'Hello Wolrd'); 
$doc->addField('description', 'Example Document'); 
$doc->addField('cat', 'Foo'); 
$doc->addField('cat', 'Bar'); 

$response = $client->addDocument($doc); 

$client->commit(); 

/* ------------------------------- */ 

$query = new SolrQuery(); 

$query->setQuery('hello'); 

$query->addField('id') 
->addField('title') 
->addField('description') 
->addField('cat'); 

$queryResponse = $client->query($query); 

$response = $queryResponse->getResponse(); 

print_r($response->response->docs); 

Пожалуйста, помогите

+0

Можете ли вы обеспечить выпуск '$ response-> response-> docs' – crmpicco

+0

@crmpicco, когда я запускаю это, я получаю внутренняя ошибка сервера на 500 , $ doc = new SolrInputDocument() .. Само создание экземпляра solr дает эту ошибку и не может перейти оттуда –

+0

, что упоминает 500 в журнале ошибок? у вас есть трассировка ошибок? – Jayendra

ответ

0

В соответствии с примером кода, вы не установите порт в вашем $options массиве. Должно быть:

var $options = array(
     'hostname' => '127.0.0.1', 
     'port' => '8080', 
); 

Это может быть причиной ошибки 500.

0

вам нужно добавить 3 вещи, хост, порт и webapp. Надеюсь, вы включили в него файл service.php.

var $options = array(
    'hostname' => '127.0.0.1', 
    'port' => '8080', //Port number where solr runs. 
    'webapp' => '/solr/', //path of the webapp. 
); 
-1

конфигурации Мастер сайта

Для settings.php файла в вашем главном сайте вы не должны многое изменить. Оставьте свой массив $ databases так же, как. Мастер-сайт будет хранить все имена пользователей, пароли и сеансы. Для файла settings.php на главном сайте вам не нужно много менять. Оставьте свой массив $ databases так же, как. Мастер-сайт будет хранить все имена пользователей, пароли и сеансы.

$databases = array(
    'default' => 
    array(
     'default' => 
     array(
      'database' => 'drupal1', 
      'username' => 'username', 
      'password' => 'password', 
      'host' => 'localhost', 
      'port' => '', 
      'driver' => 'mysql', 
      'prefix' => '', 
     ), 
    ), 
); 

Подчиненные сайтов конфигурация

Подчиненных сайты должны быть подключены к базе данных основного сервера для определенных таблиц, специально те, которые включают в себя информацию о пользователях. Для файла settings.php на ваших подчиненных сайтах вам нужно указать базу данных основного сайта и вызвать своих пользователей и другие таблицы. Мы можем сделать это, добавив параметры конфигурации в ключ «префикс» массива $ databases.

$databases = array(
    'default' => 
    array(
     'default' => 
     array(
      'database' => 'drupal2', 
      'username' => 'username', 
      'password' => 'password', 
      'host' => 'localhost', 
      'port' => '', 
      'driver' => 'mysql', 
      'prefix' => array(
       'default' => 'drupal2.', 
       'users' => 'drupal1.', 
       'sessions' => 'drupal1.', 
       'role' => 'drupal1.', 
       'authmap' => 'drupal1.', 
       'users_roles' => 'drupal1.', 
      ), 
     ), 
    ), 
); 

Для получения более подробной инструкции визита - How to set up and use Apache Solr in php

1

ваш Solr версии 3.6, так что вы должны назначить $ клиент = новый SolrClient (опции $);

$client = new SolrClient($options, "4.0"); // I see that in your code you commented this line which is required thinking that it is only for solt 4.x in your case, you should uncomment it and only remove the "4.0" in order to create a client. 

Для создания клиента:

$options = array (
    'host' => "localhost", 
    'port' => 8983, //port is required 
    'path' => '/solr/collection1', //collection1 or core are mandatory it can be just /solr/ 
); 
$client = new SolrClient($options); //for solr 3.x