2013-06-12 4 views
1

내 프로젝트 중 하나에 대해 apache solr 검색을 설정하려고합니다. 내 개발 서버에서 3.6 SOLR 설치 그리고 내가 PHP 매뉴얼에서 사용할 수있는 샘플 응용 프로그램을 넣어 시도Apache Solr with Php

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

에 도달하지만 SOLR에 대한 사용자 이름과 암호를 설정하는 것입니다. 이 정보를 어디서 얻을 수 있는지 잘 모르겠습니다. 또한 인터넷에서 코드 아래 시도했지만 나는 그것이

$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

당신이 – crmpicco

+0

@crmpicco docs''$ 응답 -> 응답 ->의 출력을 제공 할 수 나는이 프로그램을 실행할 때, 나는 500 내부 서버 오류를 얻고있다 . $ doc = new SolrInputDocument() .. solr 인스턴스 생성 자체가이 오류를 제공하고 거기에서 계속 진행할 수 없습니다 –

+0

오류 로그에 500이 무엇을 언급합니까? 오류 추적이 있습니까? – Jayendra

답변

0

예제 코드에 따르면, 당신이 당신의 $options 배열의 포트를 설정하지 않습니다 도와주세요 실행할 때마다 나는 500 오류가 발생했습니다. 다음과 같아야합니다 :

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

이는 500 오류의 원인 일 수 있습니다.

0

호스트, 포트 및 웹 애플리케이션의 세 가지를 추가해야합니다. 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 배열의 "prefix"키 내에 구성 설정을 추가하면됩니다. 더 자세한 지침을 보려면 다음 사이트를 방문

$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