Обновление элемента / документа занимает 1-2 секунды в небольшом указателе - PullRequest
0 голосов
/ 11 марта 2012

У нас небольшой индекс - размером менее 1 МБ, охватывающий примерно 10 000 документов.Единственные поля, которые сохраняются, являются достаточно короткими, что объясняет небольшой размер индекса.

После загрузки документов в индекс обновление существующего документа может занять от 1 до 2 секунд (существует довольно большая разница вэтот диапазон хотя).Мы пытались использовать различные лучшие практики (например, в вики Lucene), но не можем найти, что не так.Мы даже пошли дальше и теперь используем RAMDirectory, чтобы устранить возможность возникновения проблем с вводом-выводом.

Действительно ли это ожидаемая производительность?

ОБНОВЛЕНИЕ По запросуниже я добавляю еще несколько деталей:

  • Мы рассматриваем Lucene как черный ящик, мы просто определяем время, необходимое для переиндексации / обновления объекта.Мы не знаем, что происходит внутри.
  • Объекты (или документы, с точки зрения Люсена) довольно малы, с общим объемом данных 2 КБ каждый.

1 Ответ

0 голосов
/ 30 марта 2012

Помогет фрагмент кода, описывающий всю процедуру обновления. Вы совершаете после каждого обновления? В этом нет необходимости, и для максимальной производительности вы должны использовать читатели Near Realtime. В более новых версиях Lucene есть NRTManager, который обрабатывает большую часть шаблонов.

Во многих случаях лучшая практика - это совершать только редко или никогда (кроме как при выключении). Если ваша служба завершает работу некорректно, вы теряете свой индекс, но даже если вы этого не сделали, вам все равно придется перестроить его при перезапуске, чтобы учесть все изменения, произошедшие за это время.

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