Оглавление курса

Анализ текста

Увидим, как строка превращается в токены и почему запрос нужно анализировать согласованно с индексом.

Разделов: 4Elasticsearch 9.4.3Ещё не прочитан

Чему вы научитесь

  • Три этапа анализа
  • Анализ индекса и запроса
  • Диагностика через _analyze

Увидим, как строка превращается в токены и почему запрос нужно анализировать согласованно с индексом.

Логика главы
  • Три этапа анализа
  • Анализ индекса и запроса
  • Диагностика через _analyze

Увидим, как строка превращается в токены и почему запрос нужно анализировать согласованно с индексом.

Курс ориентирован на Elasticsearch 9.4.3. Разборы упражнений используют публичный набор products; остальные запросы показывают отдельные учебные индексы и могут требовать подготовки или прав, недоступных в тренажёре. Ответы сокращены, score может меняться. Для расширенных функций проверяйте лицензию и вариант развёртывания.

01 / 04

Три этапа анализа

Character filters меняют поток символов, tokenizer выделяет токены, token filters преобразуют их. Например, удаление HTML, разбиение на слова и lowercase решают разные задачи. Позиции токенов сохраняют структуру текста для фраз. Нельзя судить о совпадении по видимой строке _source: поиск сопоставляет проанализированные термы.

Самопроверка
02 / 04

Анализ индекса и запроса

При записи анализатор создаёт словарь индекса. Полнотекстовый запрос тоже анализирует вход, обычно используя анализатор поля или search_analyzer. term этого не делает. Несогласованная нормализация приводит к потере совпадений: lowercase только на одной стороне не исправляется boost. Отдельный search_analyzer полезен для некоторых стратегий синонимов и автодополнения.

Самопроверка
03 / 04

Диагностика через _analyze

Проверяйте короткие примеры: дефисы в артикулах, букву ё, кириллицу с латиницей и стоп-слова. _analyze показывает token, position и offsets; explain=true помогает разобрать этапы. Слишком сильный стемминг может объединять разные понятия, а удаление стоп-слов — менять поведение коротких фраз. Сначала проверяют токены, затем корректируют запрос.

Standard analyzer приводит слова к нижнему регистру; проверяйте реальные токены.

POST /_analyze
{
  "analyzer": "standard",
  "text": "Wireless Headphones"
}
Ответ Elasticsearch
Сокращённый ответ · JSON
{
  "tokens": [
    {
      "token": "wireless",
      "start_offset": 0,
      "end_offset": 8,
      "type": "<ALPHANUM>",
      "position": 0
    },
    {
      "token": "headphones",
      "start_offset": 9,
      "end_offset": 19,
      "type": "<ALPHANUM>",
      "position": 1
    }
  ]
}

Как читать результат

Standard analyzer приводит слова к нижнему регистру; проверяйте реальные токены.

Самопроверка
04 / 04

Разбор на примере каталога

Строка «Wi-Fi Headphones» не обязательно превращается в тот терм, который вы ожидаете от визуального чтения. Выполните _analyze для поля и сохраните последовательность token/position. Затем повторите для пользовательского запроса «wi fi headphones». Если термы различаются, сравните этапы tokenizer и filters, а не увеличивайте fuzziness наугад. Контрольный словарь должен включать названия моделей с цифрами и дефисами: анализатор, хороший для обычной речи, может разрушать идентификаторы. Для них полезно независимое keyword-представление.

Самопроверка

Самопроверка

Сначала ответьте самостоятельно, затем раскройте объяснение.

1. Чем tokenizer отличается от token filter?

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

2. Анализирует ли term вход?

Нет, он ищет заданный терм.

3. Что проверять до boost?

Совместимость токенов при индексации и поиске.

4. Для чего position?

Она определяет порядок и расстояния при фразовом поиске.

5. Полезно ли удалять все стоп-слова?

Не всегда: они могут быть значимы в названиях и коротких фразах.

Краткая памятка

  • Первый выделяет токены из символов, второй преобразует уже выделенные токены.
  • Нет, он ищет заданный терм.
  • Совместимость токенов при индексации и поиске.
  • Она определяет порядок и расстояния при фразовом поиске.
  • Не всегда: они могут быть значимы в названиях и коротких фразах.

Официальная документация

Готовы применить знания?

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