-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSolr.php
More file actions
38 lines (29 loc) · 909 Bytes
/
Solr.php
File metadata and controls
38 lines (29 loc) · 909 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
declare(strict_types=1);
namespace DIH;
class Solr {
const SOLR_HOST = 'localhost';
const SOLR_PORT = 8983;
const SOLR_PATH = '/solr/%s';
private $client = null;
public function __construct(string $core) { //{{{
$opts = array('hostname' => self::SOLR_HOST,
'port' => self::SOLR_PORT,
'path' => sprintf(self::SOLR_PATH, $core));
if (!$this->client = new \SolrClient($opts)) {
throw new \Exception('Problem creating Solr object');
}
}
//}}}
// add array of documents to Solr
public function addDocuments(array $docs) { //{{{
foreach ($docs as $doc) {
if (!$this->client->addDocument($doc)->success()) {
throw new \Exception('Problem adding document to Solr');
}
}
$this->client->commit();
}
//}}}
}
?>