Сколько дополнительного пространства / ОЗУ / ЦП используется Apache Solr? - PullRequest
5 голосов
/ 03 января 2012

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

Мне нужно знать ваш опыт использования любого API полнотекстового поиска (например, solr / lucene / mapReduce / hadoopи т. д.) по сравнению с использованием простого SQL в терминах:

  1. Скорость работы
  2. Дополнительное использование пространства
  3. Дополнительное использование ЦП (непрерывно ли создается индекс?)
  4. Сколько времени занимает создание индекса или подготовка к использованию?
  5. Пожалуйста, дайте мне знать ваш опыт использования этих фреймворков.

Большое спасибо!

Ответы [ 2 ]

8 голосов
/ 03 января 2012

Чтобы ответить на ваши вопросы

1.) У меня есть база данных с около 5 миллионов документов.MySQL Fulltextsearch требуется 2-3 минуты.Solr / Lucene нуждается в том же поисковом раунде около 200-400 миллисекунд.

2.) Необходимое пространство зависит от вашей конфигурации, количества полей копирования, а также от того, храните ли вы данные или индексируете их.В моей конфигурации полная БД индексируется, но оцениваются только метаданные.Таким образом, для базы данных 30 ГБ требуется 40 ГБ для Solr / Lucene.Имейте в виду, что если вы хотите (повторно) оптимизировать свой индекс, вам снова понадобятся временные 100% размера индекса.

3.) Если вы переходите с полнотекстового индекса MySQL на Lucene / Solr,Вы экономите мощность процессора.Для использования MySQL Fulltext требуется гораздо больше ресурсов процессора, чем для полнотекстового поиска Solr -> посмотрите на ответ 1.)

4.) Зависит от количества документов, размера документов и скорости диска.Конечно, производительность процессора очень важна.Во время индексации хорошее масштабирование по нескольким процессорам отсутствует.2 больших ядра намного быстрее, чем 8 маленьких.Для индексации 5 миллионов документов (44 ГБ) в моей среде требуется 2-3 часа на двухъядерном сервере VMware.

5.) Миграция с полнотекстового индекса MySQL на Lucene / Solr Fulltextindex была лучшей идеей.;-) Но, вероятно, вам придется перепроектировать ваше приложение.

// Изменить, чтобы ответить на вопрос «Будет ли индекс Lucene обновляться сразу после некоторых операторов вставки»

Это зависит от конфигурации SOlR, но это возможно

3 голосов
/ 03 января 2012

Q1: Lucene обычно быстрее и мощнее с точки зрения возможностей (если правильно реализовано)

Q2: если вы не сохраняете исходное содержимое, оно обычно составляет 20-30% от исходного (индексируется)) content

Q4: Зависит от размера вашего контента, который вы хотите проиндексировать, от объема обработки, которую вы будете выполнять (вы можете иметь свои собственные анализаторы и т. д.), а затем от вашего оборудования ...вам придется сделать тест.Для одного из моих проектов в прошлый раз потребовалось 15 минут, чтобы создать индекс в 500 МБ (без учета производительности, никаких попыток настройки), для другого потребовалось 3 дня, чтобы создать огромный 17-гигабайтный индекс.

...