PHP Conference Nagoya 2025

SolrClient::commit

(PECL solr >= 0.9.2)

SolrClient::commitЗавершает каждое добавление и удаление, которое сделали в индексе

Описание

public 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
11 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.
To Top