Apache Solr 客户端

1.3.0 2017-04-28 13:16 UTC

README

为忙碌的 PHP 开发者提供与 Apache Solr 一起工作的类。

Circle CI Packagist License

需求

此包至少需要 PHP 5.5.9。

构建

首先,您必须构建一个 Guzzle HTTP 客户端,并将 base_uri 选项设置为要工作的 Solr 端点。然后,使用它来创建 Solr 客户端。

use Opendi\Solr\Client\Client;

$guzzle = new \GuzzleHttp\Client([
    'base_uri' => "http://localhost:8983/solr/"
]);

$client = new Client($guzzle);

还可以将一些默认请求选项(如头和超时)传递给 Guzzle 客户端。

use Opendi\Solr\Client\Client;

$guzzle = new \GuzzleHttp\Client([
    'base_uri' => "http://localhost:8983/solr/",
    'defaults' => [
        'timeout' => 10
    ]
]);

$solr = new Client($guzzle);

有关所有选项的详细信息,请参阅 Guzzle 文档

存在一个辅助静态方法 factory($url, $defaults),它执行上述相同的操作。

use Opendi\Solr\Client\Client;

$solr = Client::factory('http://localhost:8983/solr/', [
    'timeout' => 10
]);

使用核心

核心 是 Solar 术语,用于表示记录集合。要选择核心,请使用 Solr 客户端的 core($name) 方法。

$core = $client->core('places');

// Perform a select query
$select = Solr::select()->search('name:Franz');
$client->core('places')->select($select);

// Perform an update query
$update = Solr::update()->body('{}');
$client->core('places')->update($update);

核心对象提供了一些辅助方法

// Returns core status
$client->core('places')->status();

// Returns number of documents in a core
$client->core('places')->count();

// Deletes all records in the core
$client->core('places')->deleteAll();

// Deletes records matching a selector
$client->core('places')->deleteByQuery('name:Opendi');

// Deletes record with the given ID
$client->core('places')->deleteByID('100');

// Checks the core is up
$client->core('places')->ping();

// Optimizes core documents
$client->core('places')->optimize();

// Commits inserted documents
$client->core('places')->commit();