SolrClient::commit

(PECL solr >= 0.9.2)

SolrClient::commit β€” Π—Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сдСлали Π² индСксС

ОписаниС

public function SolrClient::commit(bool $softCommit = false, bool $waitSearcher = true, bool $expungeDeletes = false): SolrUpdateResponse

ΠœΠ΅Ρ‚ΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ всС добавлСния ΠΈ удалСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сдСлали Π² индСксС.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

softCommit

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ «прСдставлСниС» индСкса ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅, Π½ΠΎ Π±Π΅Π· Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ согласованности Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° дискС (Solr4.0+).

Мягкая фиксация выполняСтся Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π΅Π»Π°Π΅Ρ‚ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния индСкса ΠΈ Π½Π΅ синхронизируСт (fsync) Ρ„Π°ΠΉΠ»Ρ‹ индСкса с Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ ΠΈΠ»ΠΈ Π½Π΅ записываСт Π½ΠΎΠ²Ρ‹ΠΉ дСскриптор индСкса. ΠŸΡ€ΠΈ сбоС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ JVM ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ питания измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ появились послС послСднСй Тёсткой фиксации, ΠΏΠΎΡ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ. ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ поиска с трСбованиями ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят, Ρ‡Ρ‚ΠΎΠ±Ρ‹ измСнСния индСкса Π±Ρ‹Π»ΠΈ быстро Π²ΠΈΠ΄Π½Ρ‹ для поиска), захотят Ρ‡Π°Ρ‰Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΌΡΠ³ΠΊΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π° ΠΆΡ‘ΡΡ‚ΠΊΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ Ρ€Π΅ΠΆΠ΅.

waitSearcher

Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ откроСтся новая поисковая систСма ΠΈ Π½Π΅ зарСгистрируСтся ΠΊΠ°ΠΊ основная поисковая систСма, сдСлав измСнСния Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ.

expungeDeletes

ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ сСгмСнты с удалСниями (Solr1.4 +).

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

ΠœΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ SolrUpdateResponse ΠΈΠ»ΠΈ выбрасываСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка.

Ошибки

ΠœΠ΅Ρ‚ΠΎΠ΄ выбрасываСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ SolrClientException, Ссли ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΎΡ‚ΠΊΠ°Π·Π°Π» ΠΈΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ.

ΠœΠ΅Ρ‚ΠΎΠ΄ выбрасываСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ SolrServerException, Ссли сСрвСр Solr Π½Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π» запрос.

Бписок измСнСний

ВСрсия ОписаниС
PECL-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ solr 1.1.0, PECL solr 2.0.0 Π£Π΄Π°Π»ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ $maxSegments.
PECL-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ solr 2.0.0b ИзмСнили API: SolrClient::commit ([ int $maxSegments = 0 [, bool $softCommit = false [, bool $waitSearcher = true[, bool $expungeDeletes = false ]]] )
PECL-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ solr 0.9.2 ИзмСнили сигнатуру: SolrClient::commit ([ int $maxSegments = 1 [, bool $waitFlush = true [, bool $waitSearcher = true ]]] ). $waitFlush: Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° измСнСния индСкса Π½Π΅ Π·Π°ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π½Π° диск.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅

PECL-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Solr >= 2.0 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Solr Server >= 4.0

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

  • SolrClient::optimize() - Π”Π΅Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ индСкс
  • SolrClient::rollback() - ΠžΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ всС добавлСния/удалСния, сдСланныС Π² индСкс с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° послСднСй фиксации
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 1 note

up
1
jason at jasonplayne dot com ΒΆ
13 years ago
Go easy on your use of commit - use the <autocommit /> section solrconfig.xml instead.

Also consider using optimize() once a day if you are doing lots of adds/removes.