Как стать автором
Обновить
0

Sphinx *

Система полнотекстового поиска

Сначала показывать
Порог рейтинга
Уровень сложности

Андрей Аксёнов, создатель Sphinx и лауреат Highload++: Мой путь — это «святые» девяностые и алгоритмический джихад

Время на прочтение9 мин
Количество просмотров2.7K

Андрей Аксёнов нередко начинает свои доклады с такой самопрезентации: «воронежское быдло, интересуюсь информационным поиском». Правда, в Воронеже он уже давно не проживает, но информационный поиск по-прежнему в топе списка его интересов. Работает Андрей тимлидом в компании Avito и руководит юнитом инфраструктуры поиска. А ещё именно он создал поисковый движок Sphinx и не ограничился этим, а участвовал ещё во многих других проектах — работал в веб студиях, геймдеве (приложил руку к 10+ разных игр в начале 2000-х), немного помогал с движком Unigine, много выступал на IT конференциях. За эти заслуги его наградили Премией Highload++ в 2018 году. Мы расспросили его, что значит для него премия и как создать популярный и полезный open-source проект.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии2

Новости

Manticore — альтернатива Эластику на C++ с 21-летней историей

Время на прочтение53 мин
Количество просмотров24K

5 лет назад мы форкнули Manticore из open source версии некогда популярного open source поискового движка Sphinx 2.3.2. У нас было два пакетика травы, семьдесят пять ампул мескалина, три C++ разработчика, один саппорт-инженер, опытный пользователь, менеджер, мать пятерых детей, помогающая нам на полставки и гора багов, крэшей и технических долгов. И вот, по прошествии 5 лет и сотен новых пользователей мы готовы сказать, что Manticore можно использовать как альтернативу Elasticsearch и для полнотекстового поиска и для аналитики данных.

В этой статье хочется: вспомнить как всё начиналось и что было до SOLR и Elasticsearch, максимально объективно обрисовать текущую ситуацию, попытаться понять куда нам двигаться дальше.

Читать далее
Всего голосов 117: ↑117 и ↓0+117
Комментарии83

Sphinx Search 2 -> 3: бенефиты и проблемы миграции

Время на прочтение13 мин
Количество просмотров2.9K

Автобиографический трактат о кардинальном обновлении версии поисковой системы, увлекательном приготовлении оного и ожидаемо скучный эпилог о том, как всё хорошо получилось: у нас был Sphinx Search 2.0.9, мы вовремя спохватились (посмотрев на календарь) и повезли актуальную версию.

Сделать что-нибудь — это полдела, сопровождать что-либо весь жизненный цикл — действительный путь настоящего уважающего себя самурая. Касается чего угодно — от проведения полноформатных ивентов с тысячами посетителей, до проектирования, запуска, серийного производства, обслуживания и выведения из эксплуатации с утилизацией пассажирских и грузовых авиалайнеров.

Проследовать в длиннопост
Всего голосов 12: ↑12 и ↓0+12
Комментарии6

Manticore Search — форк Sphinx: отчёт за 3 года

Время на прочтение12 мин
Количество просмотров17K

В мае 2017 мы, команда Manticore Software, сделали форк Sphinxsearch, который назвали Manticore Search. Ниже вы найдёте краткий отчёт о проделанной работе за три с половиной года, прошедших с момента форка.

Читать далее
Всего голосов 56: ↑56 и ↓0+56
Комментарии39

Истории

О локальном поиске замолвите слово

Время на прочтение5 мин
Количество просмотров8.4K
В стародавние времена я работал айтишником в одной фирме и в какое-то время возникла задача поиска по локальному хранилищу документов. Искать желательно было не только по названию файла, но и по содержанию. Тогда ещё были популярны локальные поисковые механизмы типа архивариуса и даже от Яндекса был отдельностоящий поисковик. Но это были не корпоративные решения их нельзя было развернуть централизовано для совместного использования. Яндекс, честности ради начал делать что-то похожее, но потом забросил.

Но у всех этих решений не было того, что мне нужно:

  • Централизованная установка
  • Поисковая выдача с учётом прав доступа
  • Поиск по содержимому документа
  • Морфология

И я решил сделать своё.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии19

SphinxSearch-meetup SuperJob

Время на прочтение1 мин
Количество просмотров3.2K
28 февраля мы провели SphinxSearch-meetup SuperJob. Рассказываем, что обсуждали участники, делимся видео и презентациями.

image

Всего голосов 14: ↑13 и ↓1+12
Комментарии2

Свой велосипед для синхронизации MariaDB и Sphinx

Время на прочтение13 мин
Количество просмотров4.3K


28 февраля я выступал с докладом на SphinxSearch-meetup, который проходил в нашем офисе. Рассказывал о том, как мы пришли от регулярного перестроения индексов для полнотекстового поиска и отправки обновлений в коде «по месту» к рейлтайм-индексам и автоматической синхронизации состояния индекса и базы данных MariaDB. По ссылке доступна видеозапись моего доклада, а для тех, кто предпочитает чтение просмотру видео, я написал эту статью.

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии1

Настройка поиска Sphinx для интернет-магазина

Время на прочтение5 мин
Количество просмотров39K

Информации по Sphinx не так много, как хотелось бы. Лишняя статья не помешает.
Первые шаги в освоении Sphinx мне помогли сделать статьи Создание ознакомительного поискового движка на Sphinx + php и Пример Sphinx поиска на реальном проекте — магазин автозапчастей Tecdoc Советую начать с них.


Некоторое время на моем сайте работал поиск через LIKE по каждому слову запроса. Хотелось большего, и вот какие случаи теперь будут обрабатываться правильно:


  • Словоформы. Выдача по «винты» и «винтов» должна быть одинаковой.
  • Поиск по фрагменту слова.
  • Поиск нецелых чисел. Разделитель точка и запятая.
  • Буква Ё
  • Типичные ошибки. Например «Аммортизатор».
  • Синонимы. Регулятор и ESC.
  • Язык. mAh и мАч, В и V, AAA латиницей и кириллицей.
  • Слово из букв и цифр. 10х15х4, 6000mAh
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии8

Приглашаем на SphinxSearch-meetup SuperJob

Время на прочтение2 мин
Количество просмотров1.2K
28 февраля в офисе SuperJob состоится встреча разработчиков, посвящённая системе полнотекстового поиска Sphinx.

Специалисты Avito и SuperJob поделятся своим опытом использования технологии. Участники встречи смогут задать свои вопросы автору Sphinx Андрею Аксёнову. Традиционно в программе бургеры и неформальное общение.

Дата и время: 28 февраля c 19:00 до 21:30
Адрес: Москва, Малая Дмитровка, дом 20
Регистрация: superjob-meetup.timepad.ru/event/894409
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии0

Эволюция поиска — как купить пианино в три клика

Время на прочтение9 мин
Количество просмотров14K

Раньше на Авито можно было найти нужный товар, используя фильтрацию по ключевым словам или навигацию по дереву категорий. Этот способ, хоть и казался привычным, был не всегда удобен — чтобы найти товар или услугу, нужно было сделать большое количество кликов. Более года назад у нас появилась релевантность, благодаря которой поиск стал лучше, и найти товар или услугу теперь проще и удобнее даже на главной странице. С этим нововведением в выдачу перестали попадать неподходящие, откровенно «мусорные» товары. И это только один из шагов, чтобы сделать поиск лучше. Мы постепенно изменяем инфраструктуру, что позволяет нам работать над качеством поиска более интенсивно, быстрее улучшать его и выкатывать новые фичи, приносящие пользу продавцам и покупателям на Авито.


В статье я расскажу, как менялся поиск на Авито: с чего начинали и как мы сейчас движемся по пути к улучшению жизни наших пользователей, поделюсь нашими нововведениями как в продукте, так и в его начинке — технической части. Совсем хардкорного мяса здесь не будет, но, надеюсь, вам понравится.


Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии18

Приручение SphinxSearch с помощью слона

Время на прочтение3 мин
Количество просмотров12K
image

Добрый день, хаброжители!

Представляю вашему вниманию расширение для PostgreSQL, позволяющее отправлять поисковые запросы на Sphinx из PostgreSQL и получать результаты этих запросов.

Подробности реализации и ссылка на репозиторий под катом.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии2

Андрей Карпов считает, что код проекта Manticore качественнее, чем код проекта Sphinx

Время на прочтение9 мин
Количество просмотров11K
Sphinx vs ManticoreМои читатели попросили сравнить проекты Manticore и Sphinx с точки зрения качества кода. Я могу сделать это только одним освоенным мною способом — проверить проекты с помощью статического анализатора PVS-Studio и посчитать плотность ошибок в коде. Итак, я проверил C и C++ код в этих проектах и, на мой взгляд, качество кода Manticore выше, чем качество кода Sphinx. Естественно, это очень узкий взгляд, и я не претендую на достоверность своего исследования. Однако меня попросили, и я сделал сравнение так, как умею.
Читать дальше →
Всего голосов 31: ↑22 и ↓9+13
Комментарии7

«В активном поиске»: как мы выбирали поисковый механизм для DLP-системы

Время на прочтение6 мин
Количество просмотров7.9K
В ходе работы DLP-система ежедневно перехватывает огромные массивы информации – это и письма сотрудников, и информация о действиях пользователей на рабочих станциях, и сведения о хранящихся в сети организации файловых ресурсах, и оповещения о несанкционированном выводе данных за пределы организации. Но полезной эта информация будет только в случае, если в DLP реализован качественный механизм поиска по всему массиву перехваченных коммуникаций. С тех пор, как в 2000 году увидела свет первая версия нашего DLP-решения, мы несколько раз меняли механизм поиска по архиву. Сегодня мы хотим рассказать о том, какие технологии мы использовали, какие видели в них преимущества и недостатки, и почему мы от них в итоге отказывались. Возможно, кому-то наш опыт окажется полезен.

Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии1

Ближайшие события

Как сделать генерацию LaTeX и PDF в Sphinx

Время на прочтение6 мин
Количество просмотров19K
Когда мы полтора года назад внедряли у себя генератор документаций Sphinx, перед нами стояла задача генерировать PDF. Дело оказалось весьма непростое. Готовых инструкций “бери и делай” на ресурсах не было. Мы пошли методом проб и ошибок. Через 3 дня мучений мы умели генерить PDF с нужным нам оформлением.

Сделали и забыли — работает же. Пока не случилась проблема со шрифтами. Снова намучились и снова решили. Но что примечательно — с тех пор готовой инструкции по генерации в PDF на просторах интернета не появилось. Поэтому выкладываю нашу. Внутри алгоритм с комментариями и файлами шаблона, особенностями ReST для LaTeX, которые мы собрали опытным путём.



Статья для тех, кто уже использует Sphinx, но имеет проблемы с LaTeX или PDF. Если вы только рассматривает Sphinx как инструмент документирования, будет полезно представлять, как готовить и подавать документацию в этих форматах.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии9

Документация Linux ядра переходит на Python Sphinx

Время на прочтение7 мин
Количество просмотров21K

Linux ядро на сегодняшний день — самый динамичный, сложный, крупный проект с открытым кодом. Как же обстоят дела с его документацией? Существует прямая связь: чем качественнее и доступнее документация проекта, тем проще для посторонних изучить основы дела, освоиться и стать полноправным участником.




На семинаре Kernel Recipies мейнтейнер документации Linux ядра Jonathan Corbet рассказал о нынешнем положении дел с документацией и о том, как будет совершаться переход от анархии к порядку. Первые успехи в этом начинании уже есть. Некоторые документы были недавно конвертированы в ReStructuredText с помощью питоновского Сфинкса. О том как это было рассказано внутри.

Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии14

Как устроен поиск

Время на прочтение28 мин
Количество просмотров34K
Андрей Аксёнов

Андрей Аксенов (shodan, Разработчик поискового движка Sphinx)


Поиск устроен вот так:

Краткое устройство поиска

Индексация – по большому счету, ничего сложного. Понятное дело, что по малому счету, там в каждой из трех «деталей» спрятан не то, что демон, а целое где-то стадо, где-то легион, не совсем понятно. Но концепция всегда простая. Все начинается с маленького простенького патчика к Многосерчу, а потом 15 лет этой херней занимаешься.

Берешь документы, разваливаешь их на ключевые слова. И просто взять и развалить документ на ключевые слова «мама, мыла, раму» – это ты не далеко ушел от grep’а, потому что потом все равно эти ключевые слова перебирать. Надо строить некую спец. структуру – полнотекстовый индекс. Вариантов для его построения человечество придумало в свое время довольно много, но, слава Богу, от всех отказалось и в нормальных продакшн системах, по большому счету, победил на данный момент вариант ровно один. Про него и буду рассказывать. Все остальные имеют скорее историческое значение, что ли, и практического интереса не представляют.
Всего голосов 64: ↑53 и ↓11+42
Комментарии22

Встреча разработчиков про Sphinx, 18 июня (суббота)

Время на прочтение2 мин
Количество просмотров5.1K
image
С прошлого митапа про Sphinx прошло уже больше года, так что самое время собраться снова. 18 июня состоится второй SphinxSearch meetup, территориально снова в Avito, регистрируйтесь и присоединяйтесь! Что-то интересное обещают порассказывать Avito, Ozon.ru и Нетология, ну и я тоже буду присутствовать, участвовать и состоять. Опять же пицца, кофе, печеньки. Под катом чуть подробнее о докладчиках и программе. Ну — и куда в точности приходить тоже там!!!
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии12

Devconf 2016: Интервью с разработчиком SphinxSearch

Время на прочтение5 мин
Количество просмотров5.4K
image
Мы любим делать интервью с нашими докладчиками. На этот раз — интервью с Андреем shodan Аксеновым, создателем поискового движка SphinxSearch(не знаю как сейчас, но раньше хабр использовал именно этот движок для поиска по сайту) и, как оказалось, еще пары движков. На нашей конференции он будет рассуждать на извечную тему: Devs vs CTO vs CEO. Само интервью вышло довольно интересным. Андрей честно и откровенно ответил на вопросы, за что ему большой респект :)

Я тебя знаю как разработчика Sphinxsearch, но, как показывает твоя краткая биография, которую ты дал в описании доклада, похоже компьютерная графика — твоя главная страсть?
Все одновременно проще и сложнее, какой-то главной мегастрасти нету :) Есть сколько-то интересные области, есть безразличные. Делать всякий низкий уровень, типа поискового движка, 3D игры, обработки видеозахвата, крохотного недогипервизора (V8086), патчить MySQL или ядро операционки, писать спецмодули к Апачику, улучшать известный алгоритм сжатия или даже просто ковыряться с особо толстыми и тормозными SQL запросами — все это бывает довольно интересно (а бывает нет! но чаще интересно). А вот рисовать формочки для GUI, неважно, на моднейшем Node.js или дохлом Delphi, или там править унылые отчеты в 1C — таки не очень. Говорю по личному опыту, тк. в какой-то мере занимался всем вышеперечисленным и еще всяким.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии7

Система сбора отзывов Cackle Reviews с полнотекстовым поиском

Время на прочтение5 мин
Количество просмотров12K
Всем привет! Не так давно мы реализовали полнотекстовый поиск для системы сбора отзывов Cackle Reviews. Получилось здорово, теперь любой модератор за несколько миллисекунд может найти интересующие его отзывы по слову или предложению с поддержкой стемминга (нечёткого поиска по части слова или его словоформам). Всё это работает на Sphinx — системе полнотекстового поиска.

В интернете есть много статей о Sphinx, но, к сожалению, часть из них устарела, некоторые другие не претендуют на полный и точный how to. Так что в данном посте мы постарались изложить все шаги — установки, настройки, индексации и поддержке дельта индекса.

система отзывов Cackle Reviews с полнотекстовым поиском

Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии14

А вот про Sphinx 3.0

Время на прочтение6 мин
Количество просмотров37K
Вот вы там все сидите и ничего не знаете, а мы, тем временем, пилим помаленьку мега-релиз поискового движка Sphinx за номером 3.0. Грядет ряд больших переделок. Часть из них, как полагается, ещё даже как следует не начата. Однако большая часть уже скорее готова, чем нет. А отдельно взятые изменения даже протекли в публичную ветку 2.3. Так что, пожалуй, настало время вкратце начинать рассказывать, чего ожидать в светлом будущем: надеюсь, не столь отдалённом. Кому интересно почитать, все под кат; кому послушать, приходите на meetup в эту субботу. Если совсем вкратце, то: прощай, концепция дополняющего основную базу движка; привет, хранилище документов, тотальный RT, репликация, REST и ряд других известных ключевых слов.
Читать дальше →
Всего голосов 74: ↑72 и ↓2+70
Комментарии54