На одном проекте был написан свой поиск на базе SQL с фильтрами и прочей лабудой. И пока было мало записей в БД все работало отлично, но в один прекрасный день мы сделали выгрузку в БД на 100000 уникальных записей, и что-то резко пошло не так...
Подключение и Настройка ElasticSearch + MySql + Yii2
Подключение и Настройка ElasticSearch + MySql + Yii2
Если используете кросс-кластерный поиск между кластерами в различных локациях, ниже ссылка на интересное решение проблемы, при которой нода удаленного кластера переставала отвечать (проблемы с сетью, повышенная нагрузка etc.) и поиск крэшился. А всего-то нужно было добавить...
ElasticSearch: отказоустойчивый сервер отказал
ElasticSearch: отказоустойчивый сервер отказал
Интересная статья о реализации поиска в Lamoda.
Нам нужно уметь искать товары в сфере Fashion & Lifestyle. Например, запрос «американка»: для Lamoda это может быть водолазка без рукавов или мужская куртка-бомбер. Но если задать этот запрос в Google, он выдаст другие результаты, при этом тоже релевантные. Например, «американкой» может называться резьбовое соединение или игра в бильярд.
Нам нужно уметь искать товары в сфере Fashion & Lifestyle. Например, запрос «американка»: для Lamoda это может быть водолазка без рукавов или мужская куртка-бомбер. Но если задать этот запрос в Google, он выдаст другие результаты, при этом тоже релевантные. Например, «американкой» может называться резьбовое соединение или игра в бильярд.
Если много кластеров и групп пользователей
Как мы «завели» десятки команд в один кластер OpenSearch и разделили доступы
Как мы «завели» десятки команд в один кластер OpenSearch и разделили доступы
Как мы логшипим в Elasticsearch и что думаем о Filebeat
Команда Мегафон пишет про неочевидные опции конфигурации Filebeat, которые позволят обеспечить надежную доставку логов. Спасибо им за это!
Команда Мегафон пишет про неочевидные опции конфигурации Filebeat, которые позволят обеспечить надежную доставку логов. Спасибо им за это!
Index Pattern vs. Index Template
Эти два понятия переплетаются в среде Elasticsearch, переводятся на русский одинаково и часто создают путаницу. Давайте обратимся к документации и попробуем разобраться чем они отличаются.
Index Template позволяет в частности определять структуру документов в индексе (но не только структуру и в общем случае Index Template состоит из component templates), которая будет автоматически применяться к документам при создании новых индексов. Включает в себя как настройки самого индекса, так и условия для определения будет ли данный Index Template применяться к новому индексу.
Index и Index Template — это конструкты Elasticsearch.
Index Pattern идентифицирует один или несколько индексов Elasticsearch, которые вы видите в Kibana. Kibana ищет имена индексов, соответствующие указанному шаблону. Звездочка (*) в Index Pattern соответствует нулю или более символов. Например, шаблон myindex-* соответствует всем индексам, имена которых начинаются с myindex-, такие как myindex-1 и myindex-2. Таким образом, Index Pattern — это настройка, которая сообщает Kibana, как находить данные в индексах в Elasticsearch.
Index Pattern — это конструкт Kibana.
К слову, начиная с версии Kibana 8.x в интерфейсе больше не найти Index Pattern, теперь это Data View.
Эти два понятия переплетаются в среде Elasticsearch, переводятся на русский одинаково и часто создают путаницу. Давайте обратимся к документации и попробуем разобраться чем они отличаются.
Index Template позволяет в частности определять структуру документов в индексе (но не только структуру и в общем случае Index Template состоит из component templates), которая будет автоматически применяться к документам при создании новых индексов. Включает в себя как настройки самого индекса, так и условия для определения будет ли данный Index Template применяться к новому индексу.
Index и Index Template — это конструкты Elasticsearch.
Index Pattern идентифицирует один или несколько индексов Elasticsearch, которые вы видите в Kibana. Kibana ищет имена индексов, соответствующие указанному шаблону. Звездочка (*) в Index Pattern соответствует нулю или более символов. Например, шаблон myindex-* соответствует всем индексам, имена которых начинаются с myindex-, такие как myindex-1 и myindex-2. Таким образом, Index Pattern — это настройка, которая сообщает Kibana, как находить данные в индексах в Elasticsearch.
Index Pattern — это конструкт Kibana.
К слову, начиная с версии Kibana 8.x в интерфейсе больше не найти Index Pattern, теперь это Data View.
👍1
Из России ушли многие известные вендоры APM-решений. Вендоры ушли, а вопросы мониторинга производительности приложений остались. Да, есть решения с открытым исходным кодом, да какую-то часть задачи они закроют, но это не будет комплексным решением. Что же делать российской компании, оставшейся без APM-решения? Достаточно просто посмотреть по сторонам. Два слова: Elastic APM.
Он закрывает основные технологические стеки (Java, .NET, Go Python и другие) и поддерживает мониторинг с точки зрения конечного пользователя (он же EUM или End User Monitoring, а по-простому — JavaScript, встраиваемый в фронтэнд). Есть возможность параллельного сбора логов микросервисов, сбора метрик производительности, встроенной интеграции с OpenTelemetry, Jaeger и другими ништяками.
Обращаем внимание заинтересовавшихся, что этот функционал бесплатен. За исключением одной штуки — Service Map. Этот блок входит платиновую подписку и будет работать только за деньги (ну, или в рамках триалки).
Дополнительная полезная ссылка — How to Integrate Elastic APM Java Agent with Spring Boot
Он закрывает основные технологические стеки (Java, .NET, Go Python и другие) и поддерживает мониторинг с точки зрения конечного пользователя (он же EUM или End User Monitoring, а по-простому — JavaScript, встраиваемый в фронтэнд). Есть возможность параллельного сбора логов микросервисов, сбора метрик производительности, встроенной интеграции с OpenTelemetry, Jaeger и другими ништяками.
Обращаем внимание заинтересовавшихся, что этот функционал бесплатен. За исключением одной штуки — Service Map. Этот блок входит платиновую подписку и будет работать только за деньги (ну, или в рамках триалки).
Дополнительная полезная ссылка — How to Integrate Elastic APM Java Agent with Spring Boot
How to manage indexing with dynamic time-series data in Elasticsearch?
Про автоматизацию удаления документов.
Про автоматизацию удаления документов.
Elastic Search Geo Point and Geo Shape Queries Explained
This story focuses on Geo-Spatial data manipulation similar to Postgis extension for PostgreSQL, Mongo DB, and Redis. In this article, we’ll look at Elasticsearch’s Geo queries, how you can set up mappings and indices, and provide you with some examples of how you can query your data.
Ссылка
This story focuses on Geo-Spatial data manipulation similar to Postgis extension for PostgreSQL, Mongo DB, and Redis. In this article, we’ll look at Elasticsearch’s Geo queries, how you can set up mappings and indices, and provide you with some examples of how you can query your data.
Ссылка
👍1
Как выбрать правильное количество и объём шардов индекса Elasticsearch
Если производительность кластера оставляет желать лучшего, проверьте корректность настроек количества и объёма шардов. В нашей новой статье мы разобрались что там как и почему. Велкоме.
Пара объявлений:
Приглашаем на наш ближайший семинар-инструктаж по 8 версии Elastic, который состоится уже 20-22 июля. Подробности на этой странице.
Мы готовим новый семинар-инструктаж по OpenSearch. По вашему запросу можем выслать программу. Примерный период запуска курса август-сентябрь этого года. Вопросы к @galssoftware.
Если производительность кластера оставляет желать лучшего, проверьте корректность настроек количества и объёма шардов. В нашей новой статье мы разобрались что там как и почему. Велкоме.
Пара объявлений:
Приглашаем на наш ближайший семинар-инструктаж по 8 версии Elastic, который состоится уже 20-22 июля. Подробности на этой странице.
Мы готовим новый семинар-инструктаж по OpenSearch. По вашему запросу можем выслать программу. Примерный период запуска курса август-сентябрь этого года. Вопросы к @galssoftware.
gals.software
Блог Gals Software | Как выбрать правильное количество шардов индекса Elasticsearch
Увеличиваем производительность Elasticsearch путём выбора корректного количества нардов в индексе
👍1
Вдогонку к вчерашнему посту.
Есть несколько способов уменьшить количество шардов:
1. Создавать time-series индексы с покрытие большего периода времени.
2. Удалять пустые или ненужные индексы.
3. Выполнять forcemerge индекса, если в него перестала вестись запись.
4. Выполнить shrink для индекса, уменьшив количество шард.
5. Комбинировать небольшие индексы в один при помощи reindex.
Есть несколько способов уменьшить количество шардов:
1. Создавать time-series индексы с покрытие большего периода времени.
2. Удалять пустые или ненужные индексы.
3. Выполнять forcemerge индекса, если в него перестала вестись запись.
4. Выполнить shrink для индекса, уменьшив количество шард.
5. Комбинировать небольшие индексы в один при помощи reindex.
Important Syntax Updates of Elasticsearch 8 in Python
Если работаете с Elastic через python-библиотеку Elasticsearch, в 8 версии появились некоторые обновления.
Если работаете с Elastic через python-библиотеку Elasticsearch, в 8 версии появились некоторые обновления.
Elasticsearch сводит иерархию объектов к парам ключ/значение, потому что в Lucene нет понятия внутренних объектов, как в JSON. Это означает, что нельзя запросить каждый объект независимо от других объектов в массиве. Рассмотрим приведенный ниже пример:
{ "users: [{ "name": "Гена", "age": 26}, { "name": "Вася", "age": 32 }] }
Этот массив объектов хранится так:
{ "users.name": ["Гена", "Вася"], "users.age": [32, 26] }
Массив содержит два пользовательских объекта со свойствами name и age. Когда этот массив хранится в Lucene, все значения свойства в объектах добавляются в виде массива в одно поле — в данном случае поля с именами users.name и users.age. При этом связи между свойствами теряются.
В новой статье в нашем блоге разобрались какие бывают типы данных в Elasticsearch.
{ "users: [{ "name": "Гена", "age": 26}, { "name": "Вася", "age": 32 }] }
Этот массив объектов хранится так:
{ "users.name": ["Гена", "Вася"], "users.age": [32, 26] }
Массив содержит два пользовательских объекта со свойствами name и age. Когда этот массив хранится в Lucene, все значения свойства в объектах добавляются в виде массива в одно поле — в данном случае поля с именами users.name и users.age. При этом связи между свойствами теряются.
В новой статье в нашем блоге разобрались какие бывают типы данных в Elasticsearch.
gals.software
Типы данных Elasticsearch
В этой статье разберемся какие типы данных бывают в Elasticsearch и чем они отличаются
Производительность Elasticsearch может сильно снизиться, если нода вдруг начнет скидывать данные из памяти в своп на диск. Elasticsearch можно настроить, чтобы этого избежать. В этой статье подробности настройки.
👍3
Пару-тройку месяцев назад Elastic ограничил доступ к своему репозиторию из России. Вопрос, конечно, решается при помощи VPN, но есть вариант и попроще - зеркало Яндекс Cloud.
https://mirror.yandex.ru/mirrors/elastic/
https://mirror.yandex.ru/mirrors/elastic/
👍6👎4
Небольшая статья про использование на стороне filebeat процессора set. Если нужно присвоить значение полю по некоему условию, то set — лучший выбор. В статье в качестве примера рассказывается про интеграцию с Wazuh, но использовать такой метод можно где угодно.
В этой статье собраны примеры запросов в Elasticsearch. Статья поможет выбрать оптимальный способ формирования запроса.
42 Elasticsearch Query Examples – Hands-on Tutorial
42 Elasticsearch Query Examples – Hands-on Tutorial
Напоминаем, что уже 20-22 июля мы проведем семинар-инструктаж по Elastic Stack 8. Места ещё есть. Семинар проводится в удалённом формате через Zoom.
Это хорошая возможность быстро освоить популярное решение и начать его эффективно использовать как можно скорее. Если вы знакомы с Elastic не первый месяц или даже год, то велика вероятность, что также узнаете много нового.
Стоимость участия 50 000 рублей. Оплатить можно картой на сайте или по счёту.
Подробности и программа инструктажа на этой странице.
Вопросы можно задать @galssoftware или в форме обратной связи по ссылке выше.
Это хорошая возможность быстро освоить популярное решение и начать его эффективно использовать как можно скорее. Если вы знакомы с Elastic не первый месяц или даже год, то велика вероятность, что также узнаете много нового.
Стоимость участия 50 000 рублей. Оплатить можно картой на сайте или по счёту.
Подробности и программа инструктажа на этой странице.
Вопросы можно задать @galssoftware или в форме обратной связи по ссылке выше.
gals.software
Gals Software | Elastic Stack | Обучение
Обучение работе с ElasticSearch 8, Logstash 8, Kibana 8 (Elastic Stack 8)
👍2