1

プロジェクトの 1 つに apache solr 検索をセットアップしようとしています。開発サーバーにsolr 3.6をインストールしましたが、次の方法で到達できます

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

サンプル アプリケーションを php マニュアルに掲載しようとしましたが、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 );

助けてください

4

4 に答える 4

1

あなたのsolrバージョンは3.6なので、 $client = new SolrClient($options); を割り当てる必要があります。

$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
于 2014-06-04T02:12:19.777 に答える
0

ホスト、ポート、webapp の 3 つを追加する必要があります。その中に service.php ファイルが含まれていることを願っています。

var $options = array(
   'hostname' => '127.0.0.1',
   'port' => '8080', //Port number where solr runs.
   'webapp' => '/solr/',  //path of the webapp.
);
于 2013-06-12T22:43:45.953 に答える
0

コード例によると、$options配列にポートを設定していません。次のようにする必要があります。

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

これが 500 エラーの原因である可能性があります。

于 2013-06-12T14:31:15.613 に答える
-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.',
            ),
        ),
    ),
);

詳細な手順については、「PHP で Apache Solr をセットアップして使用する方法」を参照してください。

于 2014-06-01T07:01:56.317 に答える