Сфинкс на авито москва: Sphinx meetup in Moscow on June 18 « full-text diary | Sphinx

полнотекстовый дневник | Сфинкс | Поисковый сервер с открытым исходным кодом

Поиск:

Главная » Блог

3 октября

Функция 2.3.2: встроенные подсказки

В Sphinx 2.3.2 мы представили несколько новых функций, одной из которых являются предложения по исправлению.

Подробнее…

4 комментариев »

9 сентября

Sphinx 2.3.2-beta

Добро пожаловать, Sphinx 2.3.2, наша следующая (и долгожданная) итерация в серии 2.3. Этот выпуск содержит новые функции, улучшения и устраняет множество проблем из нашей первой бета-версии 2.3.1.
Подробнее…

5 комментариев »

26 июля

Sphinx 2.2.11-релиз

Добро пожаловать Sphinx 2.2.11-релиз, выпущен и теперь доступен для скачивания!

Подробнее…

1 Комментарий »

10 июня

Встреча сфинксов в Москве 18 июня

Просто хотел опубликовать небольшую заметку здесь, что мы будем проводить встречу на Суббота, 18 июня 2016 г. в Москве, Россия, организованная Avito. Будет несколько докладов с ряда российских площадок, а именно самих Авито, Озона и Нетологии; и я (Эндрю) планирую, по крайней мере, провести сессию вопросов и ответов. Подробности на русском языке доступны здесь, на Хабре — вам нужно зарегистрироваться заранее, так что самое время приступить к делу сейчас. Если будете в Москве, заходите 🙂

Комментариев нет »

9 сентября

Sphinx 2.2.10-релиз

Добро пожаловать Sphinx 2.2.10-релиз, выпущен и теперь доступен для загрузки! Подробнее…

2 комментария »

22 июня

Sphinx теперь на GitHub

TL;DR = Исходники Sphinx теперь на Github, по адресу sphinxsearch/sphinx. Пожалуйста, получайте обновления оттуда, зеркало SVN в Google Code больше не обновляется. Чтобы узнать больше, читайте дальше.
Подробнее…

6 комментариев »

21 мая

22 апреля

Sphinx 2.2.9 — выпуск

Sphinx 2.2.9 — выпуск, выпущен и теперь доступен для загрузки. Подробнее…

Комментариев нет »

11 марта

Sphinx 2.2.8-выпуск

Sphinx 2.2.8-выпуск, выпущен и теперь доступен для загрузки. Подробнее…

1 Комментарий »

4 марта

Выпущена бета-версия Sphinx 2.3.1

Мы добавили пул потоков, кеш запросов и несколько других мелких вещей в серию 2.x. Таким образом, Sphinx 2.3.1-beta теперь доступен по адресу http://sphinxsearch.com/downloads/beta/ — читайте краткий обзор того, что было добавлено.
Подробнее…

9 комментариев »

Новости
  • Блог
  • Список рассылки
  • Рсс
Загрузки
  • Выпуск
  • Бета
  • Разработка/СВН
  • Словари
  • Архив
Услуги
  • Поддержка предприятия
  • Матрица пакетов
  • Консалтинг
  • Разработка
  • Встраивание
  • Обучение
Сообщество
  • Форум
  • Вики
  • Багтрекер
  • Открытые проекты
  • Плагины
Ресурсы
  • Документация
  • Тематические исследования
  • Работает на Сфинксе
  • Блог
  • Информационный бюллетень
О
  • Сфинкс
  • Компания
  • Контакт
  • Карьера

Блог о технологиях от Avito: Встречайте нас на Medium! | от АвитоДев | AvitoTech

Опубликовано в

·

Чтение: 6 мин.

·

10 мая 2018 г.

Всем привет, сегодня мы запускаем технологический блог Avito на Medium. Для начала несколько слов об Авито. Avito — это платформа онлайн-объявлений как для частных лиц, так и для компаний. В настоящее время Avito стабильно входит в топ-5 российских сайтов и в топ-3 мировых сайтов объявлений по разным данным. Вещи, выставленные на продажу на Авито, могут быть как новыми, так и бывшими в употреблении. На сайте также публикуются вакансии и резюме.

В этом блоге мы расскажем вам о технологиях, лежащих в основе платформы Avito. Начнем с нескольких слов о текущем состоянии проекта, функциях его инженерной команды и наших планах на ближайшее будущее.

Как и многие другие крупные проекты, Avito был запущен небольшой командой. Первая версия сайта была запущена еще в 2007 году, и первые шаги шли методом проб и ошибок. В своем нынешнем виде сайт появился лишь два года спустя. Веб-сервис изначально разрабатывался командой всего из 4 разработчиков, которые занимались абсолютно всем — от инфраструктуры до фронтенда. 2009 годверсия веб-сайта определенно не была чем-то, что можно было бы рассматривать для участия в конкурсе на лучший дизайн веб-сайта. Но те, кто участвовал в проекте, до сих пор испытывают по нему ностальгию. И гордитесь этим, потому что проект был реализован с ограниченными ресурсами, и все же ему удалось заявить о себе и заложить основу успешного бизнеса.

Трудно представить, но до 2012 года размер команды разработчиков не менялся. Однако проект разрастался, и мы чувствовали потребность в новых талантах. В 2012 году команда вступила в фазу экспоненциального роста. Оно стало подразделяться на специализации, направления, проекты, команды и группы. Сейчас в Авито есть целый инженерный отдел, в котором работает более 300 специалистов.

Через веб-приложения и мобильные приложения платформа ежемесячно обслуживает более 35 миллионов пользователей, которые ежедневно добавляют около миллиона новых объявлений (в бэк-офисе накоплено более миллиарда объявлений) и совершают более 100 000 транзакций. По данным Яндекса, в некоторых городах России (например, в Москве) Авито считается высоконагруженным проектом по просмотрам страниц. Некоторые цифры могут дать лучшее представление о масштабах проекта: 300+ серверов, >20 ТБ в Postgres, 270 ТБ изображений, 13 Гбит/сек трафика в вечерние часы пик, около миллиона запросов в минуту к бэкенду. Поэтому опыт обработки данных имеет решающее значение для наших бизнес-процессов. При этом эти объемы данных нужно не только накапливать и хранить, но и обрабатывать, фильтровать, классифицировать и делать доступными для поиска.

Ни один инструмент не может эффективно справиться с этими задачами, поэтому Avito использует ряд решений, таких как: PostgreSQL (установка PostgreSQL от Avito — одна из крупнейших и справляется с одними из самых высоких нагрузок в мире), Tarantool, Vertica, MongoDB, Redis и другие системы хранения. Об архитектуре системы мы расскажем в следующих постах.

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

Для устранения ошибок используются всевозможные справочные материалы и алгоритмы коррекции, а также более продвинутые подходы, такие как компьютерное зрение. Например, компьютерное зрение способно с очень высокой вероятностью (в некоторых категориях выше 95%) проверить, правильно ли пользователь выбрал категорию объявления. Кроме того, Avito регулярно отправляет специалистов по машинному обучению на конкурсы (проводимые такими платформами, как machinelearning.ru, boosters и kaggle), целью которых является поиск наиболее эффективных алгоритмов для решения различных прикладных задач.

Для полнотекстового поиска используется Sphinx, с которым мы регулярно делимся опытом и активно участвуем в развитии технологии.

Как уже было сказано, ежедневно пользователи добавляют около миллиона новых объявлений. Но мало кто знает, что больше половины из них — спам. Традиционно модерация использовалась для выявления спама. Забавный факт: первая версия системы модерации была написана всего за неделю, и она настолько эффективна, что с тех пор не потребовалось ни одного крупного обновления. Но, несмотря на улучшения, очевидно, что вручную обрабатывать такой объем информации невозможно. Поэтому используются более продвинутые методы, например, нейронные сети, которые непрерывно обучаются на основе решений модератора-человека.

Данные — не единственная проблема. Рынок постоянно диктует новые требования, которые выливаются во все более сложную бизнес-логику. Исторически бизнес-логика платформы реализована на PHP. В 2016 году мы перешли на новую версию — PHP 7, и серверы взяли передышку, нагрузки упали в три раза. Сегодня PHP — не единственный серверный язык, используемый на Авито. Изначально проект имел монолитную архитектуру, но уже давно движется в сторону микросервисов. В зависимости от задачи и нагрузок используются разные языки, такие как Python и Go.

Какими бы сложными ни были задачи на стороне сервера, все это скрыто от пользователя. За то, что видят пользователи при взаимодействии с сервисом, отвечает команда фронтенда. Изначально сайт строился с использованием доступных на тот момент технологий серверного рендеринга и jQuery. Но не так давно мы полностью отказались от jQuery в пользу браузерных API и небольших библиотек, решающих конкретные задачи. Frontend-разработка старается идти в ногу со временем, использовать новейшие технологии и решения. Например, сразу после утверждения спецификаций была внедрена новая версия JavaScript (сейчас используется ECMA2016). Кроме того, появляются новые веб-приложения (SPA), построенные на React и base.js. Фронтенд-разработчики также принимают участие в проектах с открытым исходным кодом (таких как CSSO (CSS Optimizer — минимизатор CSS со структурными оптимизациями), разрабатывают инструменты и делятся своим опытом на конференциях.

Avito появился в момент зарождения мобильной платформы, какой мы ее знаем сегодня. Естественно, все началось с веб-версии, затем была запущена веб-версия для мобильных устройств. Но нативные приложения имеют функции, зависящие от платформы. Сегодня мобильные приложения находятся в центре внимания. Отдельные команды одновременно разрабатывают несколько приложений для iOS и Android. Ребята очень серьезно относятся к своей миссии, делятся опытом на конференциях и на GitHub. Один из их проектов — медиа-сборщик Avito Paparazzo, который мы разместили в прошлом году и о котором вы могли прочитать на сайте maniacdev.com или в технологическом блоге OLX Group.

Обе команды мобильных разработчиков — iOS и Android — используют передовые технологии. Во-первых, это Kotlin (который мы начали использовать еще до выхода версии 1.0) и Swift. Они почти полностью заменили наследие Java и Objective-C в наших продуктах. Во-вторых, мы инвестируем в разработку и продвижение лучших инженерных практик — CI, CD, Code Review и автоматизация тестирования. В-третьих, это слабосвязанная масштабируемая архитектура, которая позволяет нескольким группам разработчиков слаженно работать над большим проектом и оперативно реагировать на запросы пользователей.

Изначально в Avito не было функции тестирования, а первые QA-специалисты присоединились к команде в 2012 году. Сегодня у нас более 40 специалистов, треть из них специализируется на автоматизации. Инструментарий стандартный: PHP + PHPUnit, Selenium. У нас есть система запуска тестов, через которую проходит в среднем 110–120 тысяч тестов в день. На пике эта цифра достигает 200 000. Для организации взаимодействия между тестировщиками и разработчиками используется собственная система управления тест-кейсами, позволяющая хранить тест-кейсы, выполнять их и прикреплять баги в Jira.

Так устроена разработка на Авито, короче говоря. Конечно, многое остается за кадром. Мы постараемся восполнить этот пробел в ближайшее время.

Узнайте больше о внутренней работе Avito из статей в технологическом блоге OLX Group:

  • Vertica + Anchor Modeling = Вырастите свой мицелий;
  • Папараццо.