﻿# Русский лексический поиск: стемминг не должен разрушать идентификаторы

Русский BM25-поиск должен разделять языковые совпадения и точные идентификаторы вместо принудительной обработки одним анализируемым полем.

Автор: Команда Retrivium
Обновлено: 2026-11-03
Канонический URL: https://retrivium.ai/ru/journal/russian-bm25-analyzer-exact-identifiers/
Language: ru

Русский BM25-поиск должен разделять языковые совпадения и точные идентификаторы вместо принудительной обработки одним анализируемым полем. Стемминг помогает находить склоняемые слова, но способен скрыть буквальные различия кодов продукта, редакций и технических строк, которые необходимы для выбора правильного источника и корректного ответа пользователю.

## Проверить выход русского анализатора

Официальный [справочник языковых анализаторов](https://www.elastic.co/docs/reference/text-analysis/analysis-lang-analyzer) описывает русский анализатор и компоненты. Представительные вопросы и документы анализируют до решения о содержимом индекса. Морфологическая обработка предназначена естественному языку, а не любому техническому токену. Код способен разделиться или преобразоваться, меняя совпадения. Проверяют полученные токены вместо предположения, что исходная строка сохранена буквально. В контрольной выборке нужны реальные для предметной области разделители, сочетания букв и цифр, а также похожие обозначения разных редакций продукта.

## Осознанно сохранить точное представление

[Справочник keyword-анализатора](https://www.elastic.co/docs/reference/text-analysis/analysis-keyword-analyzer) описывает представление одним токеном. Точным идентификаторам нужна политика регистра, разделителей и нормализации источника. Сам keyword не решает, эквивалентны ли два разных оформления кода. Исходную форму сохраняют, а нормализованные варианты добавляют только при разрешённой предметной эквивалентности. Нельзя удалять суффикс, различающий редакции оборудования. Такая потеря может повысить видимую полноту поиска и одновременно сделать ответ технически неверным, поскольку найденная инструкция относится к другому варианту изделия.

## Собрать смешанный языковой пример

Возьмём русские описания с английским идентификатором и суффиксом редакции. Зададим вопрос со склонением, вопрос по точному коду и вопрос с похожим, но неверным суффиксом. Языковой путь должен поддерживать морфологию, а идентификаторный — сохранять техническое различие. Так видно, не улучшает ли удобный анализатор совпадение темы ценой выбора другого продукта. Результаты рассматривают по этим типам запросов отдельно, чтобы средняя релевантность не скрыла редкие, но существенные ошибки точного различения вариантов оборудования.

| Роль поля | Требуемое поведение |
| --- | --- |
| Русское описание | Совпадение языковых вариантов |
| Точный идентификатор | Сохранение объявленного буквального различия |
| Исходная форма отображения | Восстановление оригинального кода |
| Метаданные редакции | Явная фильтрация применимости |

## Объединить поля явным запросом

[Справочник multi_match](https://www.elastic.co/docs/reference/query-languages/query-dsl/query-dsl-multi-match-query) описывает запросы нескольких полей и веса. Веса задают поисковую политику, а не вероятности правильности. При настройке усиления описания сохраняют видимость точного кода. Высокая языковая оценка не должна молча перебивать известную несовместимость редакции. По задаче применимость версии может требовать фильтра вместо слабого дополнительного предпочтения в ранжировании. Это решение фиксируют вместе с критериями приёмки, чтобы последующая настройка весов не превратила обязательное условие в необязательное совпадение темы.

## Разобрать расхождения до изменения весов

Рассматривают случаи разных результатов по описанию и идентификатору. До усиления поля проверяют токены, нормализацию и mapping. Конфигурацию анализатора хранят с редакцией индекса: изменение анализа может потребовать перестроения представления. Покрытие поиска и ошибки точного кода показывают отдельно. Так возникает политика, поддерживающая русский язык и техническую идентичность, вместо обещания универсального анализатора для любых документов. Выбор правил остаётся связан с конкретными обозначениями корпуса и вопросами, по которым требуется отличать близкие, но несовместимые варианты.

Связанные материалы: [Эмбеддинги для русского языка: как проверить поиск на своих документах](/ru/journal/embeddings-russian-retrieval/); [Локальный RAG-сервер: какие компоненты размещать рядом с GPU](/ru/journal/rag-server-local-architecture/).
