РБК Компании
Главная Evrone 29 ноября 2023

Локализуем маркетплейс со сложными языковыми требованиями

Рассказываем, как мы поучаствовали в разработке поисковой системы для маркетплейса, выходящего на новый рынок
Локализуем маркетплейс со сложными языковыми требованиями
Задача и причина

Задача:

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

Причина:

Нас пригласили участвовать в разработке подпроекта для клиента «Технократии» — крупного и популярного маркетплейса, который можно смело назвать альтернативой таким виртуальным торговым площадкам, как Ozon и Aliexpress. Маркетплейс предоставляет продавцам возможность продавать товары через свою платформу и организовывать их доставку.

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

Задачи проекта

Go-разработчики из Evrone работали вместе с сильной и слаженной командой проекта над бэкендом поиска. Создание локальной поисковой системы e-commerce критически важно для маркетплейсов — она обеспечивает не только поиск самого товара, но и поисковые предложения, определение подходящих категорий, ранжирование и сбор аналитики по поисковым запросам. Основные задачи, которые мы решали:

  • развертывание полностью автономной и независимой инфраструктуры;
  • обеспечение локализации и одновременной поддержки как узбекского, так и русского языков (изначально у маркетплейса не было мультиязычного поиска).

Локализация маркетплейса

Мы работали над сервисом, который предоставляет поисковые индексы для продуктов, категорий, предложений и заказов. Индексы создаются с помощью Elasticsearch.

Основная сложность локализации заключалась в том, что на самом деле нужно было локализовать две части. Во-первых, контент самого сайта, неизменяемые части — надписи на кнопках (например, отменить) и названия для различных частей сайта (контакты, поиск, выбор и так далее).

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

Во-вторых, потребовалось локализовать наименования товаров. Изначально в базе данных проекта хранились только русские наименования. Но при обработке этих рубрик для индексов или при обработке поискового запроса применялись правила как для русского, так и для английского языка, поскольку в русском тексте могут встретиться английские слова, набранные латиницей. Теперь сервис показывает заголовки на двух или даже на трех языках.

Еще одна сложность при локализации контента e-commerce — узбекский текст может писаться как латиницей, так и кириллицей. Поэтому в поисковом индексе мы сначала разделили эти поля на две части, сделали двойные поля. Затем подключили два словаря (узбекский словарь на латинице и узбекский словарь на кириллице), чтобы преобразовать слова в стандартную форму. Это позволяет правильно обработать запрос, в каком бы варианте его ни ввели.

Обработка синонимов в поисковой системе

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

Например, нужно иметь возможность найти по слову Apple продукты компании Apple, а не яблоки. Также важно обеспечить одинаковую трактовку слова как в поисковом запросе, так и в названии продукта. Для этого существуют таблицы синонимов, которые можно периодически редактировать. Также можно оценить результаты изменений с помощью инструментов веб-аналитики для e-commerce, чтобы узнать, какие изменения оптимизировали поиск, а какие — ухудшили результаты поисковых запросов. Файлы синонимов требуется постоянно обновлять.

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

Стек технологий

  • Микросервисы, написанные на Go;
  • PostgreSQL, которая используется в качестве базы данных продуктов, категорий и других изменяемых сущностей;
  • Kafka — для обмена данными;
  • Debezium — для захвата изменений в базах данных и отправки в Kafka;
  • Инструменты автоматизации и развертывания: Helm, Terragrunt, Terraform, CircleCI и Drone для CI/CD;
  • Настройки передаются через переменные окружения (а не ConfigMap);
  • Kubernetes и облачное хранилище S3.

Опора на open-source

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

Мы определили, в чем заключалась проблема и как исправить файл, затем отправили в проект pull request. Он был принят, и теперь все работает нормально.

Результат

На последних этапах проекта мы помогали определить, насколько удачно всё получилось — вели локализационное тестирование через фронтенд и через специальные механизмы, позволяющие бомбардировать точки доступа запросами и сравнивать результаты. Нам было очень интересно участвовать в разработке и запуске этого многообещающего проекта для компании «Технократия», и мы верим, что локализация электронной торговой площадки вызовет большой приток новых пользователей.

Интересное:

Новости отрасли:

Все новости:

Публикация компании

Профиль

Дата регистрации21.09.2007
Уставной капитал10 000,00 ₽
Юридический адрес обл. Воронежская, г.о. Город Воронеж, ул. Короленко, д. 5, помещ. 1/7
ОГРН 1073668003089
ИНН / КПП 3664086233 366601001
Среднесписочная численность9 сотрудников

Контакты

Адрес 119180, Россия, г. Москва, ул. Большая Якиманка, д. 26
Телефон +74953748460

Социальные сети

ГлавноеЭкспертыДобавить
новость
КейсыМероприятия