s o m e t h i n g a b o u t m e

Solr server digging

Такс. Пара слов о Solr - enterprise level search server based on Lucene search mechanism. На данном эпате копания, 3 дня всего, выяснились такие плюсы/минусы:

”+”:

  • взаимодействие по http протоколу через POST/GET запросы с передачей XML/JSON данных. Удобно, просто, довольно быстро. Главное - позволяет обслуживать без проблем до 100 запросов в секунду (по тестам людей из mailing-list)
  • впечатляющая гибкость настройки и плагинообразность. файлы schema.xml и solrconfig.xml управляют такими вещами как
    1. настраиваемые поля (shema.xml):
      • возможность указания флагов indexed/stored вообще для поля или типа поля;
      • возможность сделать свой тип поля, подключив свой jar-ник как плагин;
      • возможность повесить на текстовое поле сколько угодно tokenizers && filters (lowercase, stop-words) factories, причем разделив анализаторы для index и search механизмов;
      • возможность задания жесткого набора полей по именам или указание динамических полей с именами-масками (!) с привязанными свойствами
    2. Использование и настройка 3х типов кэша (query, filters, docs) (solrconfig.xml)
    3. Возможность подключения своих request/response handler-ов, опять же через jar-ник плагин;
  • Десяток shell-скриптов out-of-the-box для бекапирования, создания snapshot-ов индекса и еще всякой фигни.
  • Использование lucene-based языка запросов. Удобно и понятно.

“-“:

  • Взаимодействие по http протоколу через POST/GET запросы с передачей XML/JSON данных. Необходимость написания парсеров для приема/отсылки информации. Формирование (имхо) кучи лишней информации из-за xml-формата передачи. Клиент в зачаточном состоянии, но быстро правится и быстро собирается вручную :) удобно, дешево и сердито
  • Использование lucene-based языка запросов. Для быстрого формирования запросов типа “искать это1 в полях поле1, поле2, поле3 И это2 в полях поле4, поле5” и т.д. нужно держать на клиенте (по отношению к серверу Solr) lucene классы - там все эти запросы делаются одной левой посредством BooleanQuery etc. и легким движение toString переводятся в корректный запрос к Solr. Т.е. если хочется задать поля для поиска - только в запросе, явно указав. Иначе никак. Имхо - недоработка.
  • Что за формат даты такой корявый? 1995-12-31T23:59:59Z
  • Некрасивый формат сообщений об ошибках сервера - вернее, вообще нету формата. Вроде бы в jira для solr есть такой таск, может поправят.

продолжаем копать. на очереди - запуск пары экземпляров solr на одном app. server и креш-нагрузки

RSS feed | Trackback URI

»

Name (required)
E-mail (required - never shown publicly)
URI
Subscribe to comments via email
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> in your comment.