Введение
Метод пользовательского интерфейса для поиска текста, класс методов поиска в искусственном интеллекте и робототехнике.
the class of search techniques in artificial intelligence and robotics
В вычислительной технике инкрементальный поиск, также известный как "горячий" поиск, инкрементальное определение или подсказки в реальном времени, – это метод взаимодействия с пользовательским интерфейсом, позволяющий последовательно осуществлять поиск и фильтрацию текста. По мере ввода текста пользователем, один или несколько возможных вариантов совпадений находятся и немедленно отображаются пользователю. Эта мгновенная обратная связь часто позволяет пользователю прекратить ввод, не набирая полное слово или фразу, которую он искал. Пользователь также может выбрать близкий вариант из предложенного списка. Инкрементальный поиск иногда отличают от пользовательских интерфейсов, использующих модальное окно, например, диалоговое окно, для ввода поискового запроса. Для некоторых приложений вместо диалогового окна может использоваться отдельный режим пользовательского интерфейса.
История
Первое задокументированное использование инкрементального поиска было в EMACS на ITS в конце 1970-х годов. Это была одна из многих ключевых функций Emacs, которые Ричард Столлман включил в свою переработку GNU Emacs. Другие заметные программы, содержащие эту функциональность в 1980-х годах, включают bash и Canon Cat. Эти ранние реализации предоставляли обратную связь в одну строку, а не списки предложений. Первое широкое распространение эта функция, возможно, получила в программе проверки орфографии Speller для WordPerfect 5.2 для Windows, выпущенной 30 ноября 1992 года. Программист Роберт Джон Стивенс, ныне генеральный директор WriteExpress, заметил, наблюдая за пользователями в лаборатории удобства использования WordPerfect в Ореме, штат Юта, как они используют Speller 5.1, который он и Стивен М. Кэннон портировали на Windows, что когда слово не находилось в словаре и не предлагалось альтернатив, пользователи терялись, перемещали курсор мыши по странице и даже выходили из Speller. Пораженный этой странностью, он пошел домой, сел на диван и обсудил свои наблюдения с женой. Стивенс разработал решение: по мере ввода текста в поле редактирования, Speller предлагал слова, начинающиеся с введенных букв. "Вы можете ввести в поле "Заменить" любое слово, которое хотите найти. По мере ввода букв в поле отображаются возможные совпадения".
Варианты
Эта функция, или её вариации, также известна как автозаполнение, поиск по мере ввода, фильтрация/поиск по мере ввода (FAYT), инкрементный поиск, поиск с предсказанием, встроенный поиск, мгновенный поиск, подбор слов и другими названиями. Некоторые распространенные сочетания клавиш для инкрементного поиска — Ctrl/Cmd F (как и для обычного поиска), символ / в стиле GNU (применимо также к Vim) или C s в стиле Emacs.
Поиск файлов и носителей
Этот метод пользовательского интерфейса также применяется в различных ситуациях. Например, пользователь может встретить эту функцию при поиске файлов, чьи имена совпадают со строкой в проводнике операционной системы. Эта функция также может быть использована при поиске песен, название или исполнитель которых совпадают со строкой в медиаплеере.
Поиск элементов пользовательского интерфейса
Другой вариант — просматривать длинные списки опций или пунктов меню, которые могут отображаться непосредственно в пользовательском интерфейсе. Примеры этой реализации можно найти в разделе about:config интерфейса Mozilla Firefox версии 2.0.0.14 и более поздних версий, а также в разделе редактора пакетов TextMate 1.5.7. Эта функция также применяется в программах-запусках, таких как Quicksilver 1.0. Как правило, список совпадений генерируется по мере ввода поискового запроса и постепенно сужается в соответствии с текстом фильтра.
Поиск в Интернете
В сентябре 2010 года Google представил Google Instant, функцию мгновенного поиска в Google Search.
Потребление ресурсов
Инкрементальный поиск на удалённом сервере, как и веб-поиск, потребляет больше сетевой пропускной способности и ресурсов сервера, чем поиск без инкрементальной подгрузки, из-за обработки XMLHttpRequests (или аналогичных запросов), которые обычно отправляются при каждом нажатии клавиши (onkeyup).
Прием
Эксперт по интерфейсам Джеф Раскин был убежденным сторонником инкрементального поиска. В своей книге 2000 года "Человеческий интерфейс" он написал: "С точки зрения разработки интерфейсов преимущества инкрементального поиска настолько многочисленны, а преимущества поиска с ограничением настолько незначительны, что я почти не вижу случаев, когда поиск с ограничением был бы предпочтительнее". Далее следовала сноска: "Поиск бывает либо инкрементальным, либо… экскрементальным". Инкрементальный поиск критиковали за недостаточную очевидность, поскольку текстовые поля, предлагающие эту функцию, не дают визуального сигнала об этом до начала ввода текста пользователем.