Apache Solr 客户端
1.3.0
2017-04-28 13:16 UTC
Requires
- php: >=5.5.9
- guzzlehttp/guzzle: ^6.0.0
- opendi/lang: ^1.0.0
- pimple/pimple: ^3.0.0
- symfony/console: ^3.0.0
- symfony/finder: ^3.0.0
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-22 07:43:12 UTC
README
为忙碌的 PHP 开发者提供与 Apache Solr 一起工作的类。
需求
此包至少需要 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();