Версия источника: d33454c0dad753475ecc92aaecf8d783f02fd01b
Синхронизировано: 2026-11-13T05:38:20.984Z
Источник: https://github.com/sergey-from-riders/vibecoding-base/tree/d33454c0dad753475ecc92aaecf8d783f02fd01b

<a id="interface-fuzzy-search"></a>

# Поиск с учетом опечаток

## Коротко

Допускайте опечатки в текстовом поиске по заданной модели, сохраняя строгие идентификаторы, фильтры и права доступа.

## Плохо

```text
Fuzzy применяется к SKU, цене и tenant. Запрос «AB-100» возвращает и автоматически выбирает «AB-101».
```

## Хорошо

```text
Название: exact/prefix и ограниченный fuzzy по политике ранжирования.
SKU/ID: точное совпадение по умолчанию.
Цена, дата, tenant: типизированные строгие фильтры.
Неточное совпадение отмечено; пользователь выбирает результат явно.
```

## Почему

Fuzzy matching расширяет текстовый поиск по расстоянию редактирования. Он не определяет бизнес-эквивалентность идентификаторов и не заменяет морфологию или транслитерацию.

## Когда применять

Для названий, имен и описаний, где опечатки ожидаемы. Для коротких строк, кодов, финансовых и иных точных значений применяется отдельная политика.

### Требования

- Задайте нормализацию, анализатор, минимальную длину, допустимое расстояние/транспозиции, prefix_length и max_expansions либо эквивалентные ограничения движка. Значения проверяются на корпусе запросов.
- Сохраните точный путь поиска и ожидаемый приоритет exact/prefix на контрольных данных. Не обещайте такой порядок только наличием boost без проверки фактической выдачи.
- Не размывайте tenant, авторизацию, диапазоны, даты, валюты и точные ID. Для bool с filter и should задайте minimum_should_match, если хотя бы одно текстовое условие обязательно.
- Ограничьте время, объем и стоимость расширения. При отказе применяйте описанный fallback без удаления точных условий; не выполняйте действие по приблизительному результату автоматически.

## Как проверить

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

## Человек

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

## Агент

Настраивает текстовый поиск и точные фильтры отдельно; проверяет опечатки, права, ранжирование, короткие запросы и бюджет выполнения.

## Источники

- [OpenSearch: Fuzzy query](https://docs.opensearch.org/latest/query-dsl/term/fuzzy/)
- [OpenSearch: Boolean query](https://docs.opensearch.org/latest/query-dsl/compound/bool/)

Уровень: Рекомендуется. Опубликовано: 2026-11-13. Проверено: 2026-11-13. Изменено: 2026-11-13.

[Исходный файл](https://github.com/sergey-from-riders/vibecoding-base/blob/d33454c0dad753475ecc92aaecf8d783f02fd01b/registry/standards/ui/admin-interface/rules/fuzzy-search.md)
