Статьи о создании сайтов
Поиск по тексту и фильтры по характеристикам
Строковый поиск и диапазонный отбор отвечают на разные вопросы. Какие определения участвуют в выборке и почему приватное поле не должно становиться поисковой подсказкой.
На этой странице
Выберите подходящий инструмент
Поиск помогает найти слово или часть описания. Фильтр отбирает объекты по согласованной характеристике: типу питания, площади или диапазону стоимости. Попытка заменить всё свободным поиском заставляет посетителя угадывать формулировки редактора.
Например, запрос «дрель» и условие мощности от 500 до 900 Вт решают разные части задачи. Для второго нужны числовые данные в одной единице, а не произвольная строка с описанием.
Настройте определения
В Switch Pages обычный поиск работает по предусмотренным публичным текстовым полям и slug. Фильтруемые определения контейнера задают доступные условия. Числа используют границы, списки — сохранённые значения, multiselect — присутствие элемента массива.
Несколько условий соединяются сервером. Проверьте их совместное действие, а не только каждый элемент отдельно. Закрытые и неопубликованные записи не должны появляться в публичном результате, а непубличная характеристика — раскрывать своё значение через поиск.
Испытайте неудобные случаи
Проверьте пустой запрос, отсутствие результатов, длинную строку, неизвестное значение списка и числовые границы. Для многословных и морфологических запросов не следует предполагать полноценный поисковый движок: текущая строковая выборка имеет ограниченную семантику. Сложный релевантный поиск потребует отдельной разработки.
После переименования пункта справочника проверьте старые объекты и сохранённые ссылки с фильтром. Параметры фильтра не должны создавать бесконечный набор индексируемых дублей. Важна и понятная форма сброса: посетителю должно быть видно, почему список сократился. Структура данных определяет полезность фильтра раньше, чем оформление его кнопки.
Продолжить работу
Проверьте обычные, пустые и граничные значения на тестовом разделе. Сопоставьте задачу с возможностями ядра. Другой материал этого раздела: Какие поля разрешать редактировать пользователю.
