Версия источника: 613500afd8eca5143b4094f6f5cd48e67844f8ff
Синхронизировано: 2026-11-11T03:48:23.836Z
Источник: https://github.com/sergey-from-riders/vibecoding-base/tree/613500afd8eca5143b4094f6f5cd48e67844f8ff

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

# Отказоустойчивый поиск

## Коротко

Недоступность индекса не должна выглядеть как отсутствие записей.

## Плохо

```text
OpenSearch недоступен → «Ничего не найдено».
Резервный запрос забывает ограничения доступа и цены.
```

## Хорошо

```text
OpenSearch недоступен → PostgreSQL с теми же условиями.
Если корректный поиск невозможен: ошибка и повтор.
Пустая выдача показывается только после успешного поиска.
```

## Почему

Ложная пустота скрывает реальные данные. Резервный путь полезен только при сохранении точных ограничений и прав.

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

Системы с отдельным поисковым индексом. Полнотекстовое ранжирование резервного пути может отличаться; точные ограничения и доступ ослаблять нельзя. Если условие не поддерживается, объясните ограничение вместо выдачи неверных результатов.

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

- Отключите индекс в тестовой среде.
- Сравните цену, связи и доступ в основном и резервном путях.

## Человек

Определяет допустимое снижение возможностей при сбое.

## Агент

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

## Пример применения

Каталог Vibe использует PostgreSQL при сбое OpenSearch. Это пример архитектуры, а не гарантия, что произвольный SQL повторит все возможности поискового индекса.

## Источники

- [Boolean query | OpenSearch Documentation](https://docs.opensearch.org/latest/query-dsl/compound/bool/)

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

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