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

Elasticsearch — Урок 5.4 Организация данных

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

Читать далее Elasticsearch — Урок 5.4 Организация данных