Кальтер / Блог

Каталог или справочник с ИИ: как спроектировать поиск и карточки

Проектируем структурированные карточки, фильтры и поиск; задаём происхождение данных и график проверки актуальности.

Материал подготовлен с помощью ИИ; источники и расчёты проверены редакцией ZASLON.

Справочник связывает записи, параметры фильтра и карточку найденного объекта; на схеме: Запись каталога, Фильтры, Поисковый запрос.
Редакционная схема ZASLON. Условная иллюстрация механизма; не рыночные данные и не интерфейс сервиса.

Каталог помогает человеку выбрать один объект среди многих: мастерскую, курс, специалиста или место. Его полезность зависит прежде всего от качества карточек, происхождения данных, фильтров и правил обновления. «Добавить поиск с ИИ» не исправит неполные записи и не сделает актуальными давно не проверенные ссылки.

Пример: каталог кружков для подростков

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

Поле Пример значения Проверка качества
Название «Робототехника, группа начинающих» уникально ли в рамках источника?
Категория «Техническое творчество» согласована ли таксономия?
Район «Центральный» задан ли справочник районов?
Возраст диапазон, подтверждённый организатором известны ли обе границы?
Формат очно/онлайн не выводится ли из адреса автоматически?
Источник URL организатора доступна ли страница для проверки?
Проверено дата проверки сведений когда нужно повторить проверку?

Не заполняй неизвестные поля догадками. «Подходит 12–16 лет», «есть набор» и «бесплатно» — изменяемые факты, у которых должен быть источник и дата проверки. Если достоверного значения нет, покажи «не указано» или исключи этот фильтр.

От структуры карточки к фильтрам

Пользовательские вопросы подсказывают, какие поля нужны: «рядом», «для моего возраста», «очно», «по выходным». Фильтр должен опираться на отдельное поле или проверяемое представление расписания, а не искать случайные слова по всему описанию. Для конкретных категорий и районов выбери закрытые значения и объясни, если фильтры комбинируются через И или ИЛИ.

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

Индекс ускоряет определённые запросы, но не делает каталог полнее: PostgreSQL документирует типы индексов и соответствующие им операторы (Index Types). Сначала проверь фактический запрос и набор данных, затем выбирай индекс.

Попроси ИИ спроектировать не только карточку

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

После ответа проверь, что одна запись не имеет конфликтующих значений (например, в тексте указан один район, а поле — другой), а категория не создаёт десяток синонимичных тегов. Если исходники приходят из разных сайтов, храни ссылку, время импорта и факт ручной проверки отдельно. Не склеивай похожие названия в один объект без надёжного ключа.

Обновление — часть функции каталога

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

Для первого прототипа можно помечать тестовые карточки и обновлять вручную. Главное — не показывать тестовые данные как настоящий локальный справочник. На странице карточки сообщай, когда информация проверялась и куда обратиться за последним подтверждением.

Приёмка

Проверь карточку с отсутствующими полями; комбинирование фильтров; пустую выдачу; опечатку; дубликаты; нерабочую ссылку; просроченную дату проверки; новую запись, пришедшую из источника. Отдельно посмотри, может ли посетитель понять, почему элемент попал в результаты. Начинай с простого фильтра; усложняй поиск, только если список запросов выявил конкретный провал. Для внутреннего хранения каталога и прав на изменение смотри проектирование схемы данных, а для смыслового ранжирования — разбор видов поиска.