MongoDB реплика с docker-compose

Решил поделиться способом поднятия реплики с помощью docker-compose. Сам пример будут максимально приближен к боевым.

Читать далее MongoDB реплика с docker-compose

Elasticsearch — Урок 6 Все о поиске

В этом уроке поговорим о поиске, разберем различные типы запросов поддерживаемых Elasticsearch. Вы узнаете, как искать, сортировать и разбивать на страницы свои данные. В отличие от SQL, язык запросов основан на JSON и он очень гибкий. Очень просто комбинировать и встраивать запросы. Вы также узнаете, как выполнять структурированные запросы и полнотекстовые запросы.

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

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

В конце этого урока вы узнаете следующее:

Elasticsearch — Урок 6.5 Поиск по нескольким полям

multi_match предназначен для поиска по нескольким полям. Когда пользователь выполняет поиск всесезонная куртка только по полю product_name, он может не найти оптимальный результат.

Читать далее Elasticsearch — Урок 6.5 Поиск по нескольким полям

Elasticsearch — Урок 6.4 Релевантность

Традиционная база данных обычно содержит структурированные данные. Запрос в базе данных ограничивает данные в зависимости от разных условий, заданных пользователем. Каждое условие в запросе оценивается как true/false, а строки, которые не удовлетворяют условиям, устраняются. Однако полнотекстовый поиск намного сложнее. Данные не структурированы или, по крайней мере, являются таковыми.

Читать далее Elasticsearch — Урок 6.4 Релевантность

Elasticsearch — Урок 6.3 Поиск

Одной из самых мощных функций Elasticsearch является DSL (Domain specific Language) или язык запросов. Он очень выразителен и может использоваться для определения фильтров, запросов, сортировки, разбивки на страницы и агрегирования в одном запросе. Чтобы выполнить поисковый запрос, используется HTTP-запрос к _search Api. Индекс и тип, по которому должен выполняться запрос, указывается в URL-адресе. Индекс и тип являются необязательными. Если индекс / тип не указан, Elasticsearch выполняет запрос по всем индексам в кластере. Поисковый запрос в Elasticsearch может быть выполнен двумя разными способами:

Читать далее Elasticsearch — Урок 6.3 Поиск

Elasticsearch — Урок 6.2 Данные для примера

Чтобы лучше объяснить различные концепции, мы будем использовать интернет магазин в качестве примера. Мы создадим индекс со списком товаров. Это будет очень простой индекс, назовем example6 с типом product. Маппинг для типа product:

Читать далее Elasticsearch — Урок 6.2 Данные для примера

Elasticsearch — Урок 6.1 Типы запросов

Запросы Elasticsearch выполняются с помощью Search API. Как и все остальное в Elasticsearch, запрос и ответ представлены в виде JSON.

Читать далее Elasticsearch — Урок 6.1 Типы запросов

Elasticsearch — Урок 5 Массовые операции и многое другое

В этом уроке вы узнаете, как управлять индексами в Elasticsearch. До этого мы узнали как работать с одним документом. В этом уроке вы узнаете о различных API, которые Elasticsearch предлагает для поддержки массовых операций. Они могут быть очень эффективными, когда надо перестроить весь индекс или выполнить операцию сразу над несколькими документами за один раз. Из-за способа хранения данных в Elasticsearch, количество осколков или маппинг полей не может быть изменен после создания индекса. Вы узнаете о Reindex API, с помощью него можно перестроить индекс с правильными настройками. Использование Elasticsearch для данных, основанных на времени, является очень распространенным шаблоном использования. Мы обсудим различные способы управления временными индексами. В этом уроке мы рассмотрим следующее:

Elasticsearch — Урок 5.5 Shrink API

Shrink API используется для сжатия существующего индекса в новый индекс с меньшим количеством осколков. Если данные в индексе больше не изменяются, индекс может быть оптимизирован в плане используемых вычислительных ресурсов при поиске и агрегации за счет уменьшения количества осколков. Количество осколков в индексе назначения должно быть фактором исходного индекса. Например, индекс с 6 первичными осколками может быть сжат в 3, 2 или 1 осколок. При работе с чувствительными к времени данными, такими как журналы, данные индексируются только в текущие индексы, а старые индексы в основном читаются. API-интерфейс Shrink не переиндексирует документ; он просто переводит индексные сегменты в новый индекс.

Читать далее Elasticsearch — Урок 5.5 Shrink API