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

您需要添加 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.
);
于 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 回答