Интерфейсы: Упрощаем поисковый механизм (или почему этого не делаем)


Добрый день!

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

Так как проектирование интерфейсов призвано решать задачи, то и мы начнем с их постановки:

Упростить поисковый механизм

Данность.

Поисковая форма в привычном для нас виде:

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

Для всех такая форма поиска стала привычной и понятной, а сценарий работы отработан годами:

Ввели запрос — нажали кнопку — получили результат.

Данный сценарий и механизм поиска используется повсеместно. Мы будем называть его традиционным.

Проблемы традиционного поиска.

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

1. Главной проблемой традиционного поиска является отсутствие мгновенной обратной связи. Проясним: вводя запрос, мы тратим n-ое количество времени, при этом мы точно не уверены в получении необходимого результата. А если при запросе мы допустили ошибку в написании нам необходимо дождаться завершения процесса поиска и только потом ввести исправление.

2. Еще одной проблемой, как бы смешно или глупо это ни звучало, является ожидание поиска.  Когда мы ввели запрос, то до получения результата проходит 1-2 секунды (в современных поисковых алгоритмах, что уж говорить про устаревшие 🙂 ).

Альтернатива. Пошаговый поиск.

Еще в далеком 1993 году в редакторе EMACS впервые применили иной подход к поисковому механизму — пошаговый поиск. Суть данного механизма в следующем:

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

Данный поисковый механизм решает все проблемы традиционного:

1. Получаем мгновенную обратную связь: Вводя запрос, мы, уже на этапе ввода, можем увидеть есть ли результат на наш запрос или нет. Если мы делаем ошибку, то по кнопке Backspace мы останавливаем алгоритм, возвращая его к предыдущему шагу (результат которого уже был сформирован ранее), и можем ввести сразу исправленное значение.

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

3. Позволяет убрать из механизма кнопку поиска, сведя сценарий поиска до необходимого минимума: Ввели  запрос — получили результат.

Я уверен, что данный механизм поиска совсем скоро станет преобладать над традиционным. К тому есть предпосылки, главная из которых — введение данного механизма в поисковике Google.

Если все так хорошо, то почему мы никак не можем прийти к нему?

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

Если кратко: Мы привыкли, что если мы видим поле для ввода, а рядом кнопку поиска — то это форма поиска. Для нас она стала настолько привычна, что когда перед нами появится лишь поле для ввода, то это вызовет у нас дискомфорт.  Решением может стать ввод подсказок:

Например: начните ввод для поиска

Но мы понимаем, что это костыли.

Очень крутое решение придумали ребята из Google: они оставили кнопку поиска, тем самым убив двух зайцев (ввели новый механизм поиска, не изменили привычное представление).  Я уверен, что со временем Google (почему-то я верю, что именно он станет  мейнстримом  и задаст новую моду) откажется и от кнопки поиска. Этот день можно будет назвать победой пошагового поиска над традиционным.

 

Полезные материалы: Дж.Раскин «Интерфейс» / Алан Купер «Психбольница в руках пациентов» / Дж. Гарретт «Элементы опыта взаимодействия» / Стив Круг «Не заставляй меня думать»

8 комментариев to “Интерфейсы: Упрощаем поисковый механизм (или почему этого не делаем)”

  1. Евгений Мокеев:

    Интересная статья, спасибо!

    Но у меня есть пара замечаний с вашего позволения :).

    Если у нас проходит 1-2 секунды на поиск, то каким образом альтернатива нас спасет от этой проблемы? При вводе каждого символа будет проходить 1-2 секунды, при этой чем меньше символов, тем больше время.

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

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

    Кстати, проблемы с обратной связью можно решить подсказками в поисковой строке, как это делает и гугл и яндекс (suggest).

    p.s.: в полезные материалы я бы добавил Стива Круга «Не заставляй меня думать»

    • Евгений Курочкин:

      1. Про секунды:
      Смотрите, обычно мы тратим:
      Время на набор запроса, время на перемещение курсора с поисковой строки к кнопке поиска, время ожидания результата поиска.

      В пошаговом:
      Время на набор запроса. Все. Профит 🙂

      2. Про кнопку:
      Конечно кнопка интуитивно понятна, я про это и писал – привычка. Опыт прошлой работы с ПО и другими сайтам подталкивает нас к тому, что данный вид объектов является поисковой формой. Это правда. И то, что отсутствие кнопки вызовет дискомфорт – тоже верно. Это я и описал в статье.

      Но даже сейчас, все в том-же Google, используете ли вы кнопку для поиска? Или простого набора запроса хватает ?
      А если не используете – зачем вам лишний объект на странице? Это ведь противоречит основам проектирования и работы, а значит любом случае произойдет момент, когда все придут к тому, что от кнопки откажутся.

      3. Насчет сайтов:
      Мне хочется думать, что это проблема существует лишь «пока».
      Грубо говоря: Мы пока не можем заменить обычный блок поиска на мега-крутой 🙂

      Но хотя бы поиск слов на странице или поиск в документе мы вполне уже можем делать пошаговым.

      4. Про подсказки:
      Да в свое время введение такого рода подсказок было крутым решением. Частично решает проблему. Только не решает проблему времени поиска(даже с таким видом подсказок – время работы традиционного поиска больше) и мы не получаем мгновенно результат.

  2. Сергей Горшков:

    У гугла все сделано идеально, чего его обсуждать: и подсказки, и живой поиск, и кнопка осталась. На стадии введения живого поиска бесило сообщение о том, что он отключен из-за плохого канала связи (хотя дело было не в канале, а в том, что кто-то слишком быстро набирал запрос), но это изжили.
    Применительно к нашим прикладным делам. В CRM идеи такого поиска однозначно можно и нужно использовать — подумав только о том, чтобы ajax-запросы после каждого нажатия кнопки не тормозили работу системы в целом.
    А вот с сайтами сложнее. Самый простой вариант — сдаться, и использовать поиск гугла или яндекса 🙂 Второй по простоте вариант — попробовать воспроизвести то, что сделано гуглом (т.е. не придумывать велосипед, а просто сделать). Третий вариант — подумать о том, что тут можно изменить, применительно к поиску внутри конкретного сайта. Пример: в качестве подсказок показывать не абы что (т.к. то, что искали пользователи, может сильно отличаться от того, что хочется владельцам сайта), а, в первую очередь, запросы из семантического ядра сайта. Например, вводя в строку поиска на сайте index.art слово «сайт», я должен получить осмысленные подсказки типа «примеры сайтов», «цена сайта», «разработка сайтов».

  3. facebook.com Леонид Шумихин:

    Честно говоря, когда Гугл только ввел свой живой поиск, он меня жутко раздражал, в силу того, что я (возможно) привык четко формулировать поисковые запросы и появление подсказок во время набора в строке только замедляло, а не ускоряло поиск — компьютер тогда у меня был не самый быстрый, и выполнение скриптов приводило к «тормозам» в браузере 🙂 После смены компа, на привыкание к живому поиску все равно ушло какое-то время, но теперь я только за активное его внедрение.
    Что касается поиска на сайтах, то я бы присмотрелся к поисковому движку Sphinx, который обеспечивает полнотекстовый поиск http://ru.wikipedia.org/wiki/Sphinx_%28%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0%29 Пример работы движка, можно наблюдать на широко известном ресурсе http://habrahabr.ru

  4. Я не думаю, что кнопку искать когда-то уберут совсем. Есть же поля трекинга грузов по коду, очень похожие на форму поиска на сайтах, их надо идентифицировать и они требуют точного ввода запросов. Т. е. на Гугле с Яндексом это еще возможно, потому что там по сути одно поле ввода, но не на обычных сайтах.

    На счет живого поиска вброшу две копейки.
    1. Его минус в том что он сильно увеличивает нагрузку на сервер. Т. е. обращения идут при наборе каждой буквы.
    2. Подсказки мне нравятся, но постоянная смена контента страницы при запросе откровенно бесит. Особенно когда в запросе опечатка закралась
    3. Большинство людей при наборе текста смотрят на клаву, а не на экран.
    В общем у себя я живой поиск в Гугле отключил. Больше минусов, чем плюсов, как мне кажется. Ну и Леонид правильно сказал, я предпочитаю правильно формулировать запросы перед тем как их писать 🙂

    • Евгений Курочкин:

      Позволю себе не согласиться.

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

      2. 3. тут закралось противоречие: с одной стороны раздражение от меняющегося контента, с другой — на экран то не смотрят. И тут куда приятнее после набора получить готовый результат, нежели необходимость нажать кнопку и дождаться результата.

      Про достоинства исправления опечатки — написано в статье.

      • 1. По поводу нагрузки на сервер — нельзя смотреть однобоко только со стороны дизайнера 🙂 Удобнее (хотя под вопросом) — это плюс, а нагрузка — это объективный минус. И надо учитывать оба фактора. Не все заказчики могут себе позволить иметь вычислительные мощности Гугла.

        2. Нет тут противоречия. Для тех кто не смотрит на экран всех дополнительных действий — одно нажатие enter. Это микроскопические временные затраты. А поскольку он не смотрит на экран — ему начхать на живой поиск.

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

        Ну и про опечатки. Я неправильно выразился. Речь, конечно, идет не об опечатках, а о том, что запрос неправильно сформулирован, в процесс его набора я могу поменять фразу, ее конструкцию, переставить слова и т. д.

  5. Михаил Комм:

    Почитал. тоже выскажусь 🙂

    1) Живой поиск у меня отрублен начисто ибо бесит мелькание экрана. Я также, как и Леонид, привык четко формулировать чего хочу от поисковика.

    2) Согласен с Женей, что эволюция поиска именно такова и начал ее гугл. Однако мне как мамонту непривычно 😀 Мелькание экрана бесит жутко, но есть еще одна проблема — при малой скорости браузер начинает тупить, и если я согласен дождаться пока он тупанет на всем моем запросе то тупление после каждой буквы бесит нереально )

    3) ИМХО есть совмещение старой и новой формы и мне кажется она гораздо удобнее — это когда при наборе символов выпадают подсказки. Но это опять-же ИМХО.

Коментарии