{"id":10771,"title":"\u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0430\u043a\u0441\u0435\u043b\u0435\u0440\u0430\u0442\u043e\u0440 \u0434\u043b\u044f digital-\u0441\u0442\u0430\u0440\u0442\u0430\u043f\u043e\u0432","url":"\/redirect?component=advertising&id=10771&url=https:\/\/vc.ru\/promo\/349044-korotko-zapustit-pilot-i-poluchit-novyh-klientov-s-pwc&placeBit=1&hash=784bba4e4e7bbdd70a9f4ae7dbba83bdf662dd17da42e7eeb734d693a784bfa7","isPaidAndBannersEnabled":false}
Сервисы
Yandex.Cloud

Поиск по вашему сайту, как в Яндексе или Google: зачем компаниям нужен Elasticsearch

Рассказываем на реальных примерах Netflix, Тинькофф, GitHub и других компаний, как одна технология помогает оптимизировать поиск по сайту, организовать мониторинг бизнес-показателей, обрабатывать неструктурированные сообщения сторонних систем и текстовые журналы, метрики сетевых, IoT и других устройств.

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

Справочная: что такое Elasticsearch

Elasticsearch (ES) – поисковая система с открытым исходным кодом, которая позволяет в режиме реального времени искать и анализировать данные в нереляционном хранилище. Elasticsearch – ядро экосистемы Elastic Stack, в состав которой также входят Logstash, Kibana и Beats.

Экосистема Elastic Stack состоит из сервисов, которые помогают собрать разнородные данные в едином хранилище и визуализировать результаты.

  • Beats – это компактные агенты для сборки и доставки данных в Elasticsearch или Logstash.
  • Logstash – это инструмент для сбора событий из разных источников, их преобразования и отправки в Elasticsearch.
  • Kibana – веб-интерфейс для визуализации данных в реальном времени.

ES легко масштабируется и обладает высокой отказоустойчивостью. Когда речь идет о действительно больших объемах данных, многие системы не справляются с индексацией и поиском, и возникает вопрос масштабирования как инфраструктуры, так и сервисов. В Elasticsearch горизонтальное масштабирование реализовано на уровне архитектуры, поэтому в кластер можно «на лету» добавлять сервера, а сервис сам перераспределит нагрузку. Elasticsearch хранит данные в структуре, называемой индексом. Он автоматически распределяется по узлам кластера, а при сбое одного из них — перераспределяется на оставшиеся, используя внутренний механизм репликации данных.

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

Развертывание Elasticsearch на виртуальных машинах в облаке позволяет сократить время запуска и трудозатраты. Например, в облачной платформе Google, Amazon Web Services или Microsoft Azure.

Однако наиболее простой способ запуска кластера Elasticsearch – управляемый сервис. Облачные платформы позволяют создать кластер ES с оптимальной конфигурацией в несколько кликов, и при этом не нужно заниматься обновлением программного обеспечения, резервным копированием, мониторингом или обеспечением отказоустойчивости и безопасности. При изменении нагрузки масштабирование производится парой кликов. Как правило, облачные провайдеры предоставляет сервис в составе интегрированной экосистемы, что позволяет сэкономить время на связывании компонентов обработки данных между собой. А также всегда доступны инструменты для оперативного реагирования и управления кластером. Эту услугу предоставляет, например, Yandex.Cloud.

Под капотом: что позволяет Elasticsearch эффективно работать с текстом?

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

Основой для работы с текстовыми документами является анализатор. Он представляет собой цепочкупоследовательных обработчиков.

Сначала поступивший в анализатор текст проходит символьные фильтры, которые убирают, добавляют или заменяют отдельные символы в потоке. Например, с их помощью можно заменить арабские цифры (٠ ١٢٣٤٥٦٧٨ ٩) на современные арабские цифры (0123456789), перевести текст в нижний регистр или удалить html-теги.

Обработанный текст передается токенизатору, где поток символов очищается от знаков препинания и разбивается по определенным правилам на отдельные слова. Его выбор является ключевым для результата анализа: он сегментирует текст на токены по пробелам или другим символам, а затем формирует из них набор слов или основ слов (например, корней).

Полученный набор попадает в один или несколько фильтров токенов. Они могут добавлять, удалять или менять слова. Например, фильтры могут удалять часто используемые служебные слова, такие как артикли «a» и «the» в англоязычном тексте. После всех преобразований на выходе из анализатора мы имеем набор, который сохраняется в индексе Elasticsearch. Этот процесс позволяет сохранять максимум смысла при минимуме объема знаков.

Поиск слов из запроса Elasticsearch осуществляет уже по индексу. В зависимости от выбора способа поиска текст запроса может быть как предварительно проанализирован, так и нет, а сам поиск может быть как поиском по точному совпадению, так и нечетким.

Как компании применяют Elastic Stack в системах Big Data?

Для полнотекстового поиска по сайту

Stack Overflow использует Elasticsearch как средство для полнотекстового поиска по вопросам и ответам для пользователей, а также для поиска похожих вопросов и подсказок при создании нового вопроса. С его помощью сервис предоставляет как поиск по точному совпадению (для строки кода), так и нечёткий поиск с большим количеством настроек. Например, можно отдельно искать только по вопросам или только по ответам, по вопросам с заданным количеством ответов, по определенным тегам, автору, или оценке вопроса.

Благодаря Elasticsearch GitHub обеспечивает пользователям как полнотекстовый поиск, так и поиск по отдельным критериям по 8 миллионам репозиториев кода. Например, можно найти проект на языке Clojure, который при этом был активен в течение последнего месяца.

Альфа-Банк применяет Elasticsearch для полнотекстового поиска по транзакциям в личном кабинете и в сервисе «выписка по счёту».

Для хранения и анализа журналов

Elasticsearch позволяет централизованно хранить и обрабатывать системные журналы, статистику по аутентификации, метрики оборудования, журналы веб-серверов, серверов приложений, баз данных. Например, для обработки многочисленных журналов он используется такими организациями, как Netflix, ДомКлик, Medium.

Однажды Эдриан Кокрофт, бывший тогда облачным архитектором Netflix, пошутил, что «Netflix — это компания, генерирующая файлы журналов, которая также занимается потоковым вещанием фильмов». Еще в 2015 году конвейер данных Netflix обрабатывал 500 миллиардов событий в день. Это действия, связанные с просмотром видео, использованием интерфейса, журналы ошибок, производительности, события по диагностике и устранению неполадок – в общей сложности 1,3 петабайта данных. Для хранения, поиска и анализа этих данных используется Elasticsearch. За два года после начала внедрения инфраструктура доросла до 150 кластеров с суммарно более чем 3500 инстансами.

ДомКлик организовали кластер логирования на производительных физических серверах с помощью Elasticsearch. Задача кластера – агрегация и поиск по журналам более 2000 приложений, запущенных в кластере Kubernetes. Благодаря точной настройке Elasticsearch и конфигурированию Logstash система обрабатывает 4.4 ТБ данных в сутки.

Для поиска по продуктам

Leroy Merlin в России создали поиск по продуктам с нуля. Компании требовался адаптированный для русского языка поиск по товарам, их доступности и ценам. Эти данные агрегируются, форматируются и записываются в индекс Elasticsearch. При поиске товара на сайте или в мобильном приложении, созданный компанией продукт search engine ищет товары в индексе ES, затем данные ранжируются с помощью ML-алгоритмов и выдаются на странице.

Кроме того, на базе Elasticsearch была реализована быстрая выдача каталога и сервис поисковых подсказок. С момента запуска сервиса количество товаров в индексе увеличилось в два раза и продолжает расти. В среднем пользователи делают 300 поисковых запросов в секунду, но несмотря на это, время отклика составляет меньше 200 миллисекунд.

Для визуализации и анализа показателей

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

Каждую секунду в сервис поступает 1ГБ данных с балансировщиков, гипервизоров и коммутаторов, информации о состоянии биржи или платежей, пользовательских инцидентах. Все поступившие журналы хранятся в индексах Elasticsearch. Для удобства пользователей в компании разработали собственный язык запросов, а процессингом и валидацией данных занимаются собственные приложения. Эти решения позволили реализовать поиск, оповещения, создание дашбордов с аналитикой как сервис одного окна.

Elasticsearch хорошо подходит как для больших, высоконагруженных сервисов, так и для небольших проектов, в которых постоянно растут объемы данных и поисковых запросов. Высокое качество и скорость полнотекстового поиска, инструменты для сбора и анализа данных сделали Elasticsearch одним из самых популярных в мире продуктов среди поисковых систем.

Подписывайтесь на блог Yandex.Cloud, чтобы узнавать еще больше новостей и историй об IT и бизнесе.

Другие истории, которые активно читают наши подписчики:

0
0 комментариев
Популярные
По порядку
Читать все 0 комментариев
Два новых продукта в бете, кастомное хранилище и дешевый CDN

Дайджест продуктовых апдейтов, которые могут вас заинтересовать.

Тренды финтеха. Разработки, технологии и поиск новой ценности

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

Кому нужен футбол в селе

Как «Кружок» и «Тинькофф» организовали футбольные сборы в Тамбовской области или история о спорте за пределами больших городов.

Фото: Филипп Задорожный / Stereotactic
«Делимобиль» добавил Tesla Model 3 в свой парк в Москве Статьи редакции

Аренда стоит от 24 рублей за минуту.

Google и Apple завоевали рынок смартфонов, теперь они вместе с Amazon хотят заполучить рынок автомобильных ОС Статьи редакции

Но им могут помешать регуляторы. В прошлом власти позволили этим же компаниям захватить рынок мобильных систем, однако теперь попытаются предотвратить повторение ситуации на рынке ОС для машин, пишет Politico.

Проблема с внешним диском Seagate в onlinetrade.ru

28 декабря я купил в магазине onlinetrade.ru внешний жёсткий диск Seagate Backup Plus Hub 8Tb. Приехал домой, распечатал коробку подключил к компьютеру.

Как бесплатно набрать 1600 подписчиков в телеграм-канал и подружиться с самыми амбициозными стартаперами vc.ru

Рассказываю, во что вылилась моя идея скрещивания «Трибуны» с Product Hunt, как я набирал подписчиков после первой публикации на vc.ru и насколько активно аудитория в Telegram следит за подборками лучших продуктов из «Трибуны».

Как мы сделали интерактивный курс о том, чему нельзя научить в онлайне

Цифровые технологии сегодня всё чаще смешиваются с физическими объектами. Отсюда возникают примеры активностей в формате «фиджитал» (от англ. physical + digital). В статье мы рассказываем о том, как использовали такой подход в корпоративном обучении.

Rio innovation week – выступление АИМ, собственная криптовалюта для Рио-де-Жанейро и международное сотрудничество
Поиск страны для иммиграции

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

Ничего не понятно, ничего не случилось: что Центробанк предложил делать с криптовалютами в России Статьи редакции

Если идеи регулятора примут, скорее всего, для физлиц ничего не изменится, но вести криптобизнес в стране будет сложно.

Часовая запись пресс-конференции Центробанка, на которой представили доклад
null