Pull to refresh

Comments 10

> В любом случае, в наличии лишь минимум текстовой информации, и иногда некоторые метаданные, проставленные редакцией и пользователями-партнерами.
На самом деле информации у вас больше, чем когда нибудь может понадобиться. Посмотрите этот TED talk: www.ted.com/talks/fei_fei_li_how_we_re_teaching_computers_to_understand_pictures
Компьютерное зрение это конечно круто, но, пожалуй, только для гигантов вроде facebook и youtube.
А еще sphinxsearch у нас в Rutube используется для хранения и обработки логов в велосипедном аналоге Kibana — кстати, довольно шустро работает. Будет время — расскажем и о нем.

а меня очень радует использование sphinx в сборке всяких разнообразных топов и рейтингов — вспоминаю как в зеленые времена проект регулярно и по расписанию почти умирал, когда высчитывал подборку «Популярное» для главной
А еще sphinxsearch у нас в Rutube используется для хранения и обработки логов в велосипедном аналоге Kibana — кстати, довольно шустро работает. Будет время — расскажем и о нем.

было бы очень интересно почитать…
у меня как раз сейчас стоит задача анализа логов с использованием языка запросов вроде lucene'совского (как в kibana). Очень хотелось заюзать сфинкс, но не придумал как сделать поиск по запроcу вроде `signature:«sql inj» OR src_port>80`. Сфинкс не позволяет смешивать полнотекстовый поиск и фильтрацию по OR.
Сфинкс не позволяет смешивать полнотекстовый поиск и фильтрацию по OR, но мне почему-то кажется, что «sql inj» можно вставить spx_attr_string и сравнивать на равенство
SELECT attr='sql inj' or src_port>80 as where_condition WHERE where_condition=1

При этом sphinxsearch будет делать фулскан по всем данным, так что скорость будет не ахти.
Согласен. Поиск на равенство строковой константе прокатит, но хочется искать и по подстроке.
Мы в итоге выбрали elasticsearch, хотя и очень не хотели java-based решение.

Есть похожая система — ELSA. Она использует именно сфинкс с нехитрым алгоритмом принятия решения о том, к кому направлять запрос — sphinx / mysql, но она выдает неадекватные результаты по количеству найденных записей (если запрос в итоге выполняется к mysql, то количество результатов <=100).
И правильно сделали, все-таки sphinxsearch — он гораздо больше просто про поиск, чем про фильтрацию. Есть еще безумный вариант подключить sphinxsearch к postgresql через dblink ради выполнения UNION-запросов :) С vertica и mysql это прокатывает на ура.
А в чем сложность «репликации» индексов?

Индексирует одна машина. Затем rsync раскидывает файлы по серверам, и по факту завершения делаем rotate

На видеопортале с 7.5 млн уников в сутки эта схема работала на ура.

Более того она лучше для производительности поскольку индексация непосредственно на раздающем сервере просаживает время ответа практически на все время индексации, в нашем случае это было от 15 минут до 2-4 часов в зависимости от нагрузки.
Да собственно сложности никакой нет, было «предубеждение» со стороны админов еще со времен, когда СХД через drbd работало.
У нас почему-то индексация на графиках вообще не видна, в связи с этим вопрос: что же такое может делать indexer, чтобы не осталось процессорного времени на обычную работу? Данные-то подготавливаются на MySQL-реплике.
Данные, конечно на mysql, но в моем случае шла предобработка скриптами и использовался xmlpipe.

Соответственно скрипты запускались на машине где шла индексация.
Sign up to leave a comment.

Articles