Полезно ли чрезмерное использование люцена? - PullRequest
2 голосов
/ 23 июня 2009

В моем проекте весь поиск и распечатка контента зависят от Lucene. У меня нет проблем с производительностью. Тем не менее, проект находится в стадии разработки и долгий путь в производство.

Я должен выяснить проблемы с производительностью, прежде чем проект будет завершен в большой структуре. Возможно ли чрезмерное использование люцена?

Ответы [ 5 ]

7 голосов
/ 23 июня 2009

Например, у меня есть около 3 ГБ текста в индексе Lucene, и он работает очень быстро (время ответа в миллисекундах при поиске, фильтрах и сортировке). Этот индекс содержит около 300 000 документов.

Надеюсь, это дало какой-то контекст вашей озабоченности. Это в производственной среде.

3 голосов
/ 24 июня 2009

Lucene очень зрелый и обладает очень хорошими характеристиками для того, для чего он предназначен. Однако это не СУБД. Объем тонкой настройки, который вы можете сделать для повышения производительности, более ограничен, чем механизм базы данных.

Вы не должны полагаться только на люцен, если:

  • Вам нужны частые обновления
  • Вам необходимо выполнить объединенные запросы
  • Вам нужны сложные решения для резервного копирования

Я бы сказал, что если ваш проект достаточно велик, чтобы нанимать DBA, вы должны использовать один ...

Что касается производительности, я вижу приемлемую производительность для индекса 400 ГБ на 10 серверах (один сервер (4 ГБ, 2 ЦПУ) может обрабатывать 40 ГБ индекса lucene, но не более. YMMV).

1 голос
/ 27 июня 2009

Под чрезмерным вы подразумеваете обширный / эксклюзивный?

Производительность Lucene, как правило, очень хорошая. Недавно я провел несколько тестов производительности для Lucene на своем рабочем столе с QuadCore при 2,4 ГГц, 2,39 ГГц

Я выполнил различные поисковые запросы для индекса диска, состоящего из 10-мм документов, и самый медленный запрос (MatchAllDocs) дал результаты в течение 1500 мс. Поисковые запросы с двумя или более поисковыми терминами возвращают около 100 мс.

Существует множество настроек производительности для Lucene, и они могут значительно увеличить скорость поиска.

0 голосов
/ 15 октября 2009

Мы используем lucence, чтобы включить поиск с опережением. Это означает, что для каждой набранной буквы она достигает индекса люценции, чтобы получить результаты. Умножьте это на десятки текстовых полей на нескольких интерфейсах и снова десятки сотрудников, набирающих текст, без нареканий и чрезвычайно быстрого времени отклика. (На самом деле это работает быстрее, чем любое другое решение с опережением типа, которое мы пробовали).

0 голосов
/ 23 июня 2009

Что бы вы назвали чрезмерным?

Если ваше приложение имеет солидный дизайн и производительность хорошая, я бы не стал сильно беспокоиться об этом.

Возможно, вы могли бы получить дамп данных для проверки производительности в реальном сценарии.

...