отключить необходимость коммита в solr для ускорения индексации - PullRequest
3 голосов
/ 21 марта 2012

В настоящее время я использую solr в качестве поискового сервера.Моя проблема в том, что я делаю много индексации в реальном времени для набора данных (хотя размер документа очень маленький, всего 100 символов).Мне было интересно, как я мог ускорить это, отключив необходимость фиксации, автоматической фиксации и т. Д. Просто добавьте его в индекс, я не слишком беспокоюсь о том, что набор данных слишком изменчив.Я использую библиотеку узла js для индексации в solr.Вот фрагмент:

 var doc = {
                id: id.id,
                text_t: id.words
                };

                var callback = function(err, response) {
                    if (err) throw err;
                    solr.commit();

                };
            solr.add(doc, callback);

Удаление, solr.commit() не индексирует документ (хотя я думал, что commit () просто сохранил его на диск)

Ответы [ 2 ]

6 голосов
/ 21 марта 2012

В следующей версии Solr появится функция soft commit , которая может вас заинтересовать.Мягкая фиксация похожа на фиксацию, но не выполняет fsync, чтобы гарантировать, что данные были записаны на диск.Это означает, что вы можете потерять данные (например, в случае сбоя источника питания, но не в случае сбоя Solr во время работы сервера), но мягкая фиксация, вероятно, будет намного быстрее, чем обычная (жесткая) фиксация, посколькуОС может использовать буферный кеш.

В текущей версии Solr хорошим компромиссом будет использование функции commitWithin Solr UpdateHandler.Например, используя значение 10000 в качестве значения параметра commitWithin, вы гарантируете, что любой документ будет зафиксирован не более 10 секунд после его добавления в индекс, и скорость фиксации будет меньше 1 коммита каждые 10 секунд.Более низкие значения commitWithin обеспечат лучшую свежесть данных, в то время как более высокие значения будут меньше нагружать диски.

1 голос
/ 21 марта 2012

Подобно транзакции базы данных, документ не будет добавлен в Solr до фиксации.Проблема в том, что коммиты Solr очень дороги, как вы заметили.К сожалению, сейчас нет способа обойти это, Solr плохо работает для поиска в реальном времени.Способ повышения производительности при добавлении нескольких документов состоит в том, чтобы добавить их в виде пакета и зафиксировать весь набор документов за один раз.

В идеале можно использовать Поиск в реальном времени , но он все еще находится вразработка для Solr 4.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...