top of page

Как писать требования к функции поиска. Чек-лист

Фото автора: Ganna KaplunGanna Kaplun

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

Логика поиска

Критерии поиска обычно сочетаются с помощью логического И, но это не всегда так. Есть системы, позволяющие определить свою логику, есть такие, где одно или несколько полей добавляются с помощью логического ИЛИ, а все остальные – с помощью логического И. Даже если ответ на этот вопрос кажется очевидным, его следует задать.


Требования к фильтрации с логическим И
Форма фильтрации с логическим И
Поиск с настройкой логики: AND и OR
Некоторые системы позволяют изменить логическую функцию, по которой добавляется определенный параметр, с AND на OR

Настраиваемая логика поиска


Сложная логика поиска, требующая описания требований
Сложная логика поиска, требующая описания требований

Для описания логики поиска, которую можно настроить, необходимо определить следующее:

  • разрешенные логические функции (обычно это будут AND, OR, NOT, но возможны и более сложные случаи, например, XOR)

  • возможность группирования условий (использование скобочек, как в примере выше), некоторые системы позволяют только «плоские» логические выражения, которые вычисляются слева направо

  • возможность вложенности, максимальный уровень вложенности (какое максимальное количество выражений в скобочках может содержаться в других выражениях в скобочках, то есть, какова максимальная глубина такой вложенности)


Критерии поиска

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

  • порядок критериев поиска на форме

  • доступность критериев поиска (наличие зависимых параметров, например, если новый появляется при заполнении предыдущего, пошаговое заполнение по типу визарда, если применимо)

  • при наличии зависимых критериев, их поведение при очистке и изменении значения в основном фильтре

  • обязательность

  • значение по умолчанию (обязательно, если этот параметр нужен для поиска, однако не является обязательным в интерфейсе)

Сложная форма поиска
Сложная форма поиска

Числовые типы

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

  • минимальное и максимальное разрешенное значение

  • шаг (минимальное расстояние между двумя соседними элементами множества разрешенных значений)

  • точность (для дробных чисел может совпадать или НЕ совпадать с шагом)

Числовые критерии поиска
Числовые критерии поиска

Множественные типы

Множественные типы содержат заранее заданный возможный набор значений (в том числе, булевые переменные как частный случай, разрешающий выбор только одного значения), в большинстве случаев одного и того же типа, строка или число:

  • разрешен выбор только одного или нескольких значений одновременно

  • если можно выбирать несколько значений одновременно, как изменить выбор, вернуть критерий в исходное состояние, выбрать все, убрать все выбранные значения


Критерий поиска с мультивыбором и динамическим строчным поиском по элементам
Критерий поиска с мультивыбором и динамическим строчным поиском по элементам

Даты

Обычно в интерфейсе для дат используются соответствующие компоненты – календари, формы для определения времени:

  • минимальное и максимальное разрешенное значение и как выглядит календарь для неразрешенных

  • если не разрешено вводить время, записи в каком временном диапазоне в те даты должны попасть в фильтр (обычно это 00:00:00 даты начала диапазона и 23:59:59 даты конца)

  • возможность использовать открытые диапазоны для поиска (только начало без верхнего предела, только конец без нижней)

  • временные рамки поиска, если дата начала диапазона равна дате конца

  • точность при задании временных рамок, при их наличии (минуты, секунды)

  • учет часового пояса при поиске

  • возможность неполного задания временных рамок при наличии дат, дефолтовые значения для не заданных параметров (например, текущее время)


Критерии поиска в виде даты и времени с учетом часового пояса
Критерии поиска в виде даты и времени с учетом часового пояса

Строки

Строчные критерии поиска требуют отдельного внимания, поскольку, в отличие от других типов данных, работающих по точному совпадению, или диапазонам (по принципу больше или менье менее), строки имеют отдельные возможности по логике поиска:

  • минимальная и максимальная длина, набор разрешенных символов

  • дополнительные ограничения на строку (разрешенные или неразрешенные комбинации символов, ограничения на количество тех или иных символов и т.п.)

  • логика поиска:

    • для поиска по нескольким колонкам таблиц в СУБД и логическим ИЛИ, при наличии – набор колонок, по которым осуществляется поиск

    • регистр(не)зависимость

    • поиск по включению, началу, концу, или же точное совпадение

    • o многословный и контекстный поиск (поиск по отдельным словам поискового запроса, где результаты сочетаются по логическому ИЛИ, игнорированию падежей, формам глаголов и т.п.)

    • обработка пробелов (игнорировать, обрезать лидирующие пробелы слева-справа, последовательность пробелов сокращать до одного)

    • поддержка транслитерации или перевода при поиске на разных языках

    • динамический поиск:

      • сколько минимум символов в поисковой строке требуется для триггера динамического поиска

      • динамическая обработка пробелов (считается ли пробел пустым символом, который не влияет на результаты поиска)

      • отображение результатов поиска при изменении строки

Критерий поиска, позволяющий искать по включению по нескольким колонкам (все строковые)
Критерий поиска, позволяющий искать по включению по нескольким колонкам (все строковые), одна из которых на скриншоте.

Результаты поиска

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


Таблица

Базовые требования к отображению результатов поиска включают в себя:

  • набор колонок, их типы данных и порядок

  • сортировка записей по умолчанию

  • доступные действия над записями в таблице и соответствующие элементы интерфейса (контекстное меню, колонка с действиями в виде кнопок с пиктограммами, колонка с чекбоксами, если разрешено выполнение действий одновременно над несколькими записями)

  • отображение длинных строк с пробелами и без

  • вид экранной формы при отсутствии результатов поиска

  • сохранение сортировки, критериев поиска при обновлении, переходе на другие страницы, окончании пользовательской сессии (поведение может отличаться для этих случаев)

  • актуализация данных (при одновременном редактировании другими пользователями: в режиме реального времени или по обновлению страницы)

  • загрузка результатов: полностью, блоками (lazy load), по страницам

  • требования к сортировке

  • требования к управлению страницами


Управление страницами

Типовые требования будут содержать:

  • наличие настройки количества строк на странице, значения по умолчанию, возможные опции

  • навигация по страницам – какие кнопки доступны (первая, последняя, ​​следующая, предыдущая, номера страниц)

  • возможность перехода на страницу редактированием URL

  • сохранение номера страницы после:

    • изменения сортировки

    • выполнения действий над записями в таблице

    • обновления страницы

Компоненты постраничной навигации
Компоненты постраничной навигации
Загрузка блоками (lazy load)

Сортировка

Возможные компоненты:

  • для каких колонок доступна сортировка

  • изменение направления сортировки

  • отмена сортировки и возврат к сортировке по умолчанию

  • возможность сортировки по более чем одной колонке одновременно (вложенная сортировка)

  • рамки сортировки: все данные в таблице, текущая страница

  • поведение при изменении направления сортировки при отображении НЕ первой страницы результатов (переход на первую, соответствующая замена записей при сквозной сортировке)

  • сохранение сортировки после:

    • перехода на другие страницы

    • выполнения действий над записями в таблице

    • обновления страницы

Пример вложенной сортировки
Пример вложенной сортировки (сначала по Name, после по Last Name)

Другие формы отображения результатов поиска

В зависимости от типа данных результаты поиска могут отображаться и в другом виде, например:

  • карта и точки на ней

  • разнообразные графики для числовых и нечисловых данных

  • графические компоненты: иконки предварительного просмотра (например, для товаров интернет-магазина);

Таблица с результатами поиска и карта
Таблица с результатами поиска и карта
Таблица с результатами поиска и график с агрегированными данными
Таблица с результатами поиска и график с агрегированными данными
Відображення результатів пошуку у різних графічних компонентах, агрегації
Отображение результатов поиска в различных графических компонентах, агрегации

Дополнительные требования к отображению результатов поиска

Такие требования могут включать в себя:

  • синхронизация результатов в нескольких форматах отображения, например списке или таблице и карте

  • наличие скроллингов на уровне таблицы или страницы (горизонтальных и вертикальных)

  • фиксация одной или нескольких колонок в таблице при горизонтальном скроллинге

  • всплывающие подсказки на названиях колонок или ячейках (например, для полного отображения длинных строк)

  • возможность редактирования значений непосредственно в списке результатов поиска

  • поведение чекбокса на уровне заголовка для операций над несколькими записями одновременно (в рамках страницы, всех загруженных записей, всех отфильтрованных записей)

  • возможность агрегирования результатов по одной или нескольким колонкам

  • компоненты статистики результатов поиска: количество результатов в целом, в фильтре, суммы, максимумы или минимумы по определенным колонкам

  • маскирование значений определенных колонок при наличии персональных данных, которые должны быть скрыты

  • группирование данных в колонках

Скроллинг на уровне таблицы результатов, фиксированные колонки

Группировка данных по строкам по одной колонке, агрегация в рамках групп
Группировка данных по строкам по одной колонке, агрегация в рамках групп

Выводы

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


Надеюсь, этот материал был вам полезен. Увидимся на тренингах Art of BA!



Новости и статьи по бизнес-анализу:

 
 
 

Comentarios


bottom of page