top of page

Як писати вимоги до функції пошуку. Чек-ліст

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

Різноманітні форми пошуку та фільтрації зустрічаються майже у кожній системі. Хоча інтерфейс подібних компонентів може відрізнятися, іноді суттєво, бізнес-правила поза ним дуже подібні. Для того, щоб їх чітко визначити, варто розбити цю логіку на певні компоненти та з’ясувати відповіді на ряд питань. Ця стаття має на меті створити перелік таких питань, для того, щоб зробити вимоги відразу максимально повними та чіткими.

Логіка пошуку

Критерії пошуку зазвичай поєднуються за допомогою логічного ТА, однак це не завжди так. Є системи, які дозволяють визначити власну логіку, є такі, де одне чи кілька полів додаються за допомогою логічного АЛЕ, а всі інші – за допомогою логічного ТА. Навіть якщо відповідь на це питання здається очевидною, його варто задати.


Вимоги до фільтрації з логічним ТА
Форма фільтрації з логічним ТА
Пошук з налаштуванням логіки: AND та OR
Деякі системи дозволяють змінити логічну функцію, за якою додається певний параметр, з AND на OR

Логіка пошуку, яка налаштовується


    Складна логіка пошуку, яка потребує опису вимог
Складна логіка пошуку, яка потребує опису вимог

Для опису логіки пошуку, яку можна налаштувати, потрібно визначити наступне:

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

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

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


Критерії пошуку

Питання, які варто задавати щодо різних критеріїв пошуку, часто залежать від їх типів даних, тож розглянемо типові питання для кожного стандартного випадку. Є певні загальні характеристики, які варто визначити, як-от:

·         порядок критеріїв пошуку на формі

·         доступність критеріїв пошуку (наявність залежних параметрів, наприклад, якщо новий з’являється при заповненні попереднього, покрокове заповнення по типу візарду, якщо застосовно)

·         за наявності залежних критеріїв, їх поведінка при очищенні та зміні значення в основному фільтрі

·         обов’язковість

·         значення за замовчанням (обов’язково, якщо цей параметр потрібен для здійснення пошуку, однак не є обов’язковим в інтерфейсі)


Складна форма пошуку
Складна форма пошуку

Числові типи

Для параметрів, що дозволяють цілі та дробові числа, зазвичай треба визначити:

  • мінімальне та максимальне дозволене значення

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

  • точність (для дробових чисел, може співпадати або НЕ співпадати з кроком)

Числові критерії пошуку
Числові критерії пошуку

Множинні типи

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

  • дозволено вибір лише одного чи кількох значень одночасно

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

Критерій пошуку з мультивибором та динамічним рядковим пошуком по елементах
Критерій пошуку з мультивибором та динамічним рядковим пошуком по елементах

Дати

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

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

  • якщо не дозволено вводити час, записи в якому часовому діапазоні в ті дати мають потрапити в фільтр (зазвичай це 00:00:00 дати початку діапазону та 23:59:59 дати кінця)

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

  • часові рамки пошуку, якщо дата початку діапазону дорівнює даті кінця

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

  • урахування часового поясу при пошуку

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

Критерії пошуку у вигляді дати та часу із урахуванням часового поясу
Критерії пошуку у вигляді дати та часу із урахуванням часового поясу

Рядки

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

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

  • додаткові обмеження на рядок (дозволені або недозволені комбінації символів, обмеження на кількість тих чи інших символів тощо)

  • логіка пошуку:

    • для пошуку по кільком колонкам таблиць у СУБД та логічним АБО, за наявності – набір колонок, за якими здійснюється пошук

    • регістро(не)залежність

    • пошук за включенням, початком, кінцем, або ж точне співпадіння

    • багатослівний та контекстний пошук (пошук по окремим словам пошукового запиту, де результати поєднуються за логічним АБО, ігнорування відмінків, форм дієслів тощо)

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

    • підтримка транслітерації чи перекладу при пошуку різними мовами

    • динамічний пошук:

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

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

      • відображення результатів пошуку при зміні рядка

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

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

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


Таблиця

Базові вимоги до відображення результатів пошуку включають у себе:

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

  • сортування записів за замовчанням

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

  • відображення довгих рядків з пробілами та без

  • вигляд екранної форми за відсутності результатів пошуку

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

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

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

  • вимоги до сортування

  • вимоги до управління сторінками


Управління сторінками

Типові вимоги міститимуть:

  • наявність налаштування кількості рядків на сторінці, значення за замовчанням, можливі опції

  • навігація по сторінках – які кнопки наявні (перша, остання, наступна, попередня, номери сторінок)

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

  • збереження номера сторінки після:

    • зміни сортування

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

    • оновлення сторінки


Компоненти посторінкової навігації
Компоненти посторінкової навігації
Завантаження блоками (lazy load)

Сортування

Можливі компоненти:

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

  • зміна напряму сортування

  • відміна сортування і повернення до сортування за замовчанням

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

  • рамки сортування: всі дані в таблиці, поточна сторінка

  • поведінка при зміні напряму сортування за умови відображення НЕ першої сторінки результатів (перехід на першу, відповідна заміна записів за умови наскрізного сортування)

  • збереження сортування після:

    • переходу на інші сторінки

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

    • оновлення сторінки

Приклад вкладеного сортування
Приклад вкладеного сортування (спочатку за Name, після за Last Name)

Інші форми відображення результатів пошуку

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

  • мапа і точки на ній

  • різноманітні графіки для числових та нечислових даних

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

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

Додаткові вимоги до відображення результатів пошуку

Такі вимоги можуть включати в себе:

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

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

  • фіксація одної чи кількох колонок в таблиці при горизонтальному скролінгу

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

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

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

  • можливість агрегування результатів за однією чи кількома колонками

  • компоненти статистики результатів пошуку: кількість результатів загалом, у фільтрі, суми, максимуми чи мінімуми по певних колонках

  • маскування значень певних колонок за наявності персональних даних, що мають бути приховані

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

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

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

Висновки

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

Сподіваюся, цей матеріал був для вас корисним. Побачимося на тренінгах Art of BA!



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

 
 
 

Comments


bottom of page