Подтвердить что ты не робот

Оптимизация производительности Lucene

Каковы различные способы оптимизации производительности Lucene?

Должен ли я использовать API кеширования для хранения моего поискового запроса lucene, чтобы я сохранил накладные расходы на создание запроса еще раз?

4b9b3361

Ответ 2

Краткие советы:

  • Сохраняйте размер индекса маленьким. Устранить нормы, векторы сроков, когда они не нужны. Установите флаг Store для поля, только если это необходимо.
  • Очевидная, но часто повторяющаяся ошибка. Создайте только один экземпляр Searcher и повторное использование.
  • Храните в индексе быстрые диски. RAM, если вы параноидальные.

Ответ 3

Чит. Используйте RAMDirectory, чтобы загрузить весь индекс в RAM. Впоследствии все быстро вспыхивает.:)

Ответ 5

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

Получить профилировщик Netbeans или что-то подобное и попробовать его разными способами. Используйте статьи, связанные с Митчем, но убедитесь, что вы действительно проверяете, что помогает, и что (часто удивительно) болит.

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

Ответ 6

Для 64-разрядных машин используйте MMapDirectory вместо RAMDirectory как очень хорошо объясненный здесь одним из основных коммиттеров Lucene.