Новости проекта Sphinx, весна 2010

Posted: 11th Март 2010 by admin in Без рубрики

Год 2010 получается довольно занятой в целом, весна случилась урожайная на конференции в частности. Поэтому писать в блог на Хабр регулярно получается плохо, но как минимум пачкой новостей и ссылок хочется поделиться (уже пора!). Краткая сводка —

  1. с начала года прошло 3 конференции (Confoo, MySQL UC, RIT++) с докладами про Сфинкс, доступны слайды;
  2. в течение месяца предстоит еще 2 (DORS/CLUC, DevConf), где запланированы доклады и (внимание, нечто новое) мастерклассы про все тот же Сфинкс;
  3. полтора месяца назад запустили (англоязычный) блог, пытаемся регулярно писать интересное туда, пока даже получается ам очень удивляюсь);
  4. RT апдейты дозрели до публичного релиза настолько, что релиз задерживают не они; SVN версия местами крутится в продакшне, и даже почти что не падает дивляюсь еще сильнее);
  5. самозародились плагины для WordPress, Zend Framework (не наши).

Подробности под катом!

Про прошедшие конференции. Пол Рейнхаймер делился своим опытом использования Сфинкса на Confoo ‘2010, я рассказывал про новости проекта за последний год на MySQL UC 2010 (известный вулкан пытался помешать мне вернуться, но потом исправился и передумал), Мачей Добжански сравнивал Sphinx супротив MySQL на RIT++ 2010, все слайды доступны по ссылкам. Особенно рекомендую последнюю презентацию, познавательно.

Про грядущие конференции. 5-7 мая в Загребе (Хорватия) буду делать два доклада и мастеркласс про Сфинкс на DORS/CLUC 2010 (это совмещенная местная Хорватская конференция про open-source в целом и для linux-users в частности; говорят, довольно большая). 18 мая в Москве (Россия) опять же буду делать мастеркласс на DevConf. По всем прикидкам в формате мастеркласса должно получиться рассказать (а то и показать) куда больше, чем за 30-45 минутный доклад, так что приглашаю всех, кому небезынтересно делать у себя толковый поиск.

Про сфинксоблог. Он запустился. Все новые заметки про всякое техническое есть план когда-нибудь переводить и публиковать здесь, но времени на это пока решительно нет. Так что если с качественными переводами меня обгонят, буду только рад.

Про плагины. Буквально (!) третьего дня с удивлением заметил, что Sphinx плагин для Wordpress (от широкой известной в узких кругах Percona) уже давно онлайн. Чуть ранее прислали ссылку на Sphinx плагин для Zend Framework. Сами пока не пользуемся, уверенно похвалить (либо изругать) не можем, но авось кому пригодится.

И, чтобы разбавить всякое, по существу, организационное хоть сколько-то технической информацией, пара слов про RT апдейты.

Они плюс-минус… готовы и работают, хотя, разумеется, не без шероховатостей. Тестировать можно уже с начала года. На данный момент известна минимум одна боевая инсталляция. Любопытно, что ее пока никак не получается как следует уронить. По причине наличия бинлогов и COMMIT есть опасения, что уронить с потерей данных может вообще не получиться. Понятно, регулярно находим и фиксим всякие баги, однако публичный релиз уже давно задерживается вовсе не из-за них, а по другим, совершенно унылым и обычным причинам — другая более приоритетная работа, добавление отладочного кода, написание документации, предрелизное тестирование, итд итп.

Такие дела. Смотрите слайды, заходите на конференции, читайте (а то и помогайте переводить) блог, пишите фидбэк про RT апдейты :-)

  1. XuMiX:

    habrahabr.ru/blogs/php/41702/behavior для CakePHP

  2. eugyn:

    Про RT бы поподробнее.
    Мануала нормального пока нет.

    Статейку бы вводную с примерами.

  3. shodan:

    > Мануала нормального пока нет.

    Дык, одна (одна) из причин задержки альфа-релиза.

  4. shodan:

    > Мануала нормального пока нет.

    Дык, одна (одна) из причин задержки альфа-релиза.

  5. Scala:

    А как вы себя позиционируете по отношению к Apache Lucene?

  6. shodan:

    Что конкретно имеется в виду под «позиционированием»?

    Для начала, Lucene вообще библиотека, Sphinx готовый к использованию «из коробки» сервер.

  7. Scala:

    Имеется ввиду use-cases, где Sphinx предпочтительнее: расширяемость, функции(spell-checker, crawler, индексирование pdf/excel etc) или производительность.

    Ну под Apache Lucene я имел ввиду проект ASF, в который входит такой же «готовый к использованию «из коробки» сервер» Solr.

  8. shodan:

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

    Очень (очень) вкратце, индексация и поиск у нас быстрее до нескольких раз. Плюс умеем делать ряд интересных штук, которые Lucene/Solr делать не умеют (и наоборот, наверняка, тоже).

    Ну вот потихоньку работаем над тем, чтобы «наоборот» не оставалось, набор случаев, где категорически надо именно Lucene, сокращался, перформанс рос, итп ;)

  9. BisnoyZakat:

    А вы решили ту проблему с сортировкой по random? а то у меня каждые раз выбираются одни и те же поля =)

  10. shodan:

    Точно помню, что патчил; не помню только, в какой версии.

  11. cyberty:

    И о модуле для Drupal вы не слышали? Правда, по данным сайта он давно не обновляется… Есть там же и более другая разработка.
    Какой из них наиболее правильно использовать (Sphinx search vs. Sphinx search integration), не совсем понятно.

  12. shodan:

    Я ж не пользуюсь ничем. На что пришлют ссылку, о том слышу. Не пришлют, так нет!

  13. SkyCat:

    Ни тот ни другой не очень-то функциональны. Плагин Sphinx под шестой версией не работает (хотя лежит стабильный релиз), плагин Sphinx search работает, но его надо допиливать. В принципе, dev-версия плагина Sphinx search спокойно работает в продакшене.

  14. masterbo:

    Аналогично использую девелоперскую версию drupal.org/project/sphinxsearch в которой убрал их собственный интерфейс индексации и написал ручные запросы sql. >30к материалов индексируется за 4 секунды против 6 минут встроенного скрипта.

  15. SkyCat:

    А не поделитесь sql-запросами? Если не жалко, конечно. ))

  16. korchasa:

    Плагин для ZF какой-то высосанный из пальца: педжинатор, скрипт управления и конфиг, который умеет подставлять параметры соединения с БД. Плагинище! :)

    Ждем человека, который осилит написать генератор конфига по Doctrinехеме.

  17. AndrewAZ:

    Имхо, где-нибудь в скобках уточнить в двух словах что за сфинкс такой, было бы не лишним. Даже гугл сходу выдает, как минимум, два проекта.

  18. shodan:

    Их больше двух, но наш в Гугле пока первый.

    В скобку #whois добавил правильную ссылку, впрочем.

  19. eugyn:

    По RT вопросы, на основе
    sphinxsearch.com/downloads/sphinx-mysqluc2010.pdf

    Правильно ли я понял из фразы
    «Indexing-wise, just INSERT rows (literally)»

    Не индексер натравливаем на сохраненные в чем то данные, а данные толкаем по сути в индекс?

  20. shodan:

    Угу, на то оно и RT. Батч-индексацию тем же indexer когда-нибудь тоже приделаем (это несколько муторно, но принципиальных проблем нет).

  21. eugyn:

    Тогда возникает такой вопрос.

    По сути, сфинксу становится по фигу в каком типе сторейджа хранятся данные.
    Естественно с ограничением «пока индекс не навернулся :-(»
    Это так?

    Дальше.
    В принципе, есть ли препятствия для создания индекса в режиме RT, булками по
    «1000+ rows/batch» где нибудь сбоку и последующей замены текущего индекса вновь созданным путем перетирания файлов, либо еще как нибудь?

    Ну и последнее. Если есть команда «INSERT», «DELETE» будет?

  22. shodan:

    Про сторадж не понял, MySQL storage engine и раньше глубоко пофигу был, без разница, откуда данные тащить.

    Про замену индекса не понял совсем.

    INSERT, REPLACE, DELETE, SELECT уже есть. Будет UPDATE, ограниченный.

  23. eugyn:

    Сторейдж в смысле «откуда данные тащить», речь про экзотику, типа разные там кассандры и т.п.

    >Про замену индекса не понял совсем.
    упс
    :-(
    пошел читать мануал

  24. shodan:

    Данные тащить можно откуда угодно уже давно, см. sphinxsearch.com/docs/current.html#xmlpipe2

  25. eugyn:

    Не
    ну это прокладка нужна которая кормить сфинкса xml’ем будет

    А тут, тупо, из приложениия два плюха — один в сторейдж, один в сфинкс. Без заморочек.

  26. CAH4A:

    А Oracle, случаем, не хочет положить движок SphinxSE в коробочку с mysql?

  27. shodan:

    Предлагаю спросить у Oracle, вдруг ответят!

  28. CAH4A:

    было бы неплохо.

  29. Shedar:

    Подскажите, есть ли возможность интегрировать модуль морфологии, чтобы использовать его, а не стеммер?
    Если нет, то планируется ли и когда, если есть, то где об этом почитать?

  30. shodan:

    Кроме стеммеров еще словари словоформ (wordforms) можно пользовать.

    Пробовать подключать сторонние библиотеки (libaot) технически вполне возможно. Однако в обозримом будущем не планируем. Все зависит от клиентов в данном случае.