(PECL solr >= 0.9.2)
SolrClient::addDocument β ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π² ΠΈΠ½Π΄Π΅ΠΊΡ
$doc, bool $overwrite = true, int $commitWithin = 0): SolrUpdateResponseΠΠ΅ΡΠΎΠ΄ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π² ΠΈΠ½Π΄Π΅ΠΊΡ.
docΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ SolrInputDocument.
overwrite
Π‘Π»Π΅Π΄ΡΠ΅Ρ Π»ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ false, Π±ΡΠ΄ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ (Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ID).
Π PECL Solr < 2.0 $allowDups ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π²ΠΌΠ΅ΡΡΠΎ $overwrite, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΠΌ ΡΠ»Π°Π³ΠΎΠΌ bool.
$allowDups = false ΡΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΈ $overwrite = true
commitWithinΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. ΠΠΎΡΡΡΠΏΠ½ΠΎ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Solr 1.4. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (0) ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΎ.
ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΠΎΡΡΠ°ΡΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»Π°ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Solr, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΠ°, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΎΠ±Π»ΡΠ΄Π°Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π·Π°Π΄Π΅ΡΠΆΠΊΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΠΈ Solr Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΡΡΠΏΠΈΡ ΡΠ°ΠΌΠΎΠ΅ ΡΡΠ°ΡΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π±ΡΡΠ΅Ρ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ SolrUpdateResponse ΠΈΠ»ΠΈ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ SolrClientException, Π΅ΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΎΡΠΊΠ°Π·Π°Π» ΠΈΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ SolrServerException, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Solr Π½Π΅ ΡΠΌΠΎΠ³ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π·Π°ΠΏΡΠΎΡ.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ SolrClient::addDocument()
<?php
$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);
$client = new SolrClient($options);
$doc = new SolrInputDocument();
$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');
$updateResponse = $client->addDocument($doc);
// Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ $commitWithin
$client->commit();
print_r($updateResponse->getResponse());
?>ΠΡΠ²ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π°:
SolrObject Object
(
[responseHeader] => SolrObject Object
(
[status] => 0
[QTime] => 1
)
)
ΠΡΠΈΠΌΠ΅Ρ #2 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ SolrClient::addDocument() #2
<?php
$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);
$client = new SolrClient($options);
$doc = new SolrInputDocument();
$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');
// ΠΠ΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ commit(), ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ $commitWithin, ΠΏΠΎΡΡΠΎΠΌΡ Solr Server Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 10 ΡΠ΅ΠΊΡΠ½Π΄
$updateResponse = $client->addDocument($doc, false, 10000);
print_r($updateResponse->getResponse());
?>ΠΡΠ²ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π°:
SolrObject Object
(
[responseHeader] => SolrObject Object
(
[status] => 0
[QTime] => 1
)
)