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

Sphinx *

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

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

Организация поиска на сайте: выбираем между поиском Битрикса, Sphinx и Elasticsearch

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров1K

Когда я пользуюсь сайтом, я хочу, чтобы поиск был максимально простым и удобным. Мы все уже привыкли к тому, как работают умные системы вроде Google или Яндекса, поэтому от любой другой поисковой строки ожидаем аналогичного уровня. Вбиваешь, к примеру, «телискп» или «пороцитомол», а в ответ получаешь список подходящих оптических приборов или лекарств с указанием, где их можно найти в каталоге.

Но как же поисковая система сайта понимает, что я имел в виду? Это какая-то магия или всё же наука? Давайте разберёмся, почему недостаточное внимание к внутреннему поиску может повредить бизнесу, как он способен сократить путь пользователя и что делает его важным инструментом для повышения конверсии.

Читать далее

Новости

Manticore + Laravel + Scout

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров1.6K

Простая интеграция поискового движка Manticore Search с фреймворком Laravel при помощи Laravel Scout и неофициального драйвера manticore-scout-engine.

Подробности

Создаём безукоризненную автодокументацию кода на Python с помощью Sphinx

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров8.2K

В этой статье я расскажу о генераторе документации Sphinx, с помощью которого можно автоматически создавать документацию для модулей Python. Кроме того, я буду использовать шаблон проекта Cookiecutter Data Science в Visual Studio Code (VS Code), поскольку он легко интегрируется в Sphinx и имеет стандартизированную структуру директорий. Официальное пособие по использованию Sphinx — отличный ресурс для пользователей, которые хотят углубиться в детали. А моя статья — это краткое руководство по началу работы с этим инструментом.

Читать дальше →

Как использовать Elasticdump с Manticore

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.3K

Elasticdump - это инструмент для управления и миграции данных в Elasticsearch. Elasticdump позволяет пользователям перемещать и сохранять индексы, экспортируя данные в файл JSON, а затем импортируя их в другое место. Эта функциональность особенно полезна для целей резервного копирования и восстановления, а также для миграции данных между различными средами (например, из разработки в продакшн).

Читать далее

Истории

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

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

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

Читать далее

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

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

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

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

Читать далее

Elasticsearch vs Sphinx

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

Каждый разработчик приложения рано или поздно сталкивается с таким важным вопросом, как выбор поискового движка. Мы рассмотрели два популярных, но принципиально разных варианта – Sphinx и Elasticsearch – и объяснили, почему сделали выбор в пользу первого для своего приложения.

Читать далее

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

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

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

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

Проследовать в длиннопост

Продолжаем интернационализацию поиска по адресам с помощью Sphinx или Manticore. Теперь Metaphone

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

Это продолжение публикации «Интернационализация поиска по городским адресам. Реализуем русскоязычный Soundex на Sphinx Search», в которой я разбирал, как реализовать поддержку фонетических алгоритмов Soundex в Sphinx Search, для текста написанного кириллицей. Для текста на латинице поддержка Soundex уже есть. С Metphone аналогично, для латиницы есть, для кириллицы не очень, но попытаемся исправить этот досадный факт с помощью транслитерации, регулярных выражений и напильника.

Это прямое продолжение, в котором разберём как реализовать оригинальный Metaphone, русский Metaphone (в том смысле что транслитерация не понадобится), Caverphone, и не сможем сделать Double Metaphone.

Реализация подойдёт как для использования на платформе Sphinx Search, так и Manticore Search.

В конце, посмотрим как Metaphone воспримет "ракомакофон".

Продолжаем...

Интернационализация поиска по городским адресам. Реализуем русскоязычный Soundex на Sphinx Search

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

Как много в вашем городе иностранных туристов? В моём мало, но встречаются, как правило стоят потерянные посреди улицы и повторяют одно единственное слово – название чего бы то ни было. А прохожие пытаются им на пальцах объяснить куда пройти, а когда «моя твоя не понимать» – берут за руку и ведут к пункту назначения. Как это не удивительно, обычно цель в пяти минутах ходьбы, т.е. какое-то примерное представление о городе эти туристы всё же имели. Может по бумажной карте ориентировались.

А как часто лично вы оказывались в такой ситуации, в незнакомом городе в другой стране?

Появление смартфонов и приложений для навигации решило много проблем. Ура, можно посмотреть свою геолокацию, можно найти куда идти, прикинуть в каком направлении и даже проложить маршрут.

Осталась одна проблема: все улицы в приложении подписаны местными иероглифами на местном наречии, и ладно если в стране пребывания принята латиница, клавиатура на латинице есть во всех смартфонах и мир к ней привык, и то я испытывал дискомфорт, из-за диакритических знаков, принятых в чешском алфавите. А боль и страдания иностранцев, видящих кириллицу, могу только представить, посмотрите псевдокириллицу и поймёте. Если бы я оказался на их месте, я бы писал названия и адреса латиницей, пытаясь воспроизвести звучание - фонетический поиск.

В публикации опишу как реализовать фонетические алгоритмы поиска Soudex на движке Sphinx Search. Одной транслитерацией здесь не обойдётся, хотя и без неё никуда. Получившийся конфигурационный файл, доступен на GitHub Gist.

Длиннопост

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

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

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

Читать далее

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

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

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

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

И я решил сделать своё.
Читать дальше →

Как мы обучили сфинкса для голосового помощника

Время на прочтение6 мин
Количество просмотров3.7K
В процессе разработки проекта «голосовой помощник» одним из требований была возможность распознавания управляющих команд в оффлайн режиме. Это было нужно, так как в противном случае пришлось бы постоянно слушать и посылать поток с аудиоданными на распознавание, получать ответ и анализировать его.

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


Читать дальше →

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

2 – 18 декабря
Yandex DataLens Festival 2024
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

SphinxSearch-meetup SuperJob

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

image

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

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


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

Читать дальше →

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

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

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


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


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

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

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

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

Дата и время: 28 февраля c 19:00 до 21:30
Адрес: Москва, Малая Дмитровка, дом 20
Регистрация: superjob-meetup.timepad.ru/event/894409
Читать дальше →

По вашему запросу найдено: реализация нечеткого поиска

Время на прочтение8 мин
Количество просмотров12K
Все мы совершаем ошибки: в данном случае речь идет о поисковых запросах. Количество сайтов для продажи товаров и услуг растет наряду с потребностями пользователей, однако не всегда они могут найти то, что ищут – только потому, что неправильно вводят название необходимого товара. Решение данной проблемы достигается путем реализации нечеткого поиска, то есть использования алгоритма поиска наиболее близких значений с учетом возможных ошибок или опечаток пользователя. Область применения такого поиска достаточно широка – нам же удалось поработать над поиском для крупного интернет-магазина в фудритейл-сегменте.
Читать дальше →

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

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

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


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


Читать дальше →

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

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

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

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

Подробности реализации и ссылка на репозиторий под катом.
Читать дальше →