Что такое быстрый поиск
«Быстрый» и «медленный» поиск: два различных подхода для поиска на сайте
Добрый день, друзья.
Сегодня я хотел бы рассказать о двух подходах к поиску информации, которые я использую на своем сайте. Условно я их называю «быстрый» и «медленный» поиск (хотя можно придумать и другие термины, но мне нравятся эти). В целом, идея довольно проста: «быстрый» поиск – это тот, который выдает информацию «здесь и сейчас», а «медленный» — растянутую во времени, например, ежедневно, еженедельно и т.д. Каждый подход имеет своих целевых пользователей, и оба весьма органично дополняют друг другу.
Для понимания приведу наглядный пример: пусть нас интересует работа нашего президента. Для этого мы спокойно можем забить в Яндексе или Гугле «Медведев официальные встречи Кремль» и они услужливо выдадут нам массу ссылок. Это – «быстрый» (мгновенный) поиск. А теперь представим себя в роли политолога. По идее, ему каждый день нужны свежие события о президенте – с кем встретился, что сказал и т.д. Ходить ради этого каждый день в поисковик – занятие неблагодарное. Было бы замечательно, если бы можно было забить раз и навсегда конкретные поисковые запросы, и чтобы поисковые роботы сами (!!) с определенной периодичностью отбирали свежие материалы. Это – «медленный» поиск.
В теории выглядит «вкусно», так что попробуем реализовать на конкретно взятом сайте. Я буду иллюстрировать на примере своего сайта, который имеет книжную направленность (букинистика, обмен книг).
Реализация быстрого поиска в том или ином виде есть на любом сайте. Одна или несколько html-форм, по данным из которых формируется SQL-запрос, выполняется, затем результаты обрабатываются и выдаются пользователю в удобном виде. Выполнив такой поиск, пользователь видит текущее состояние книжной базы (книги конкретного автора, книги с конкретным названием, цены, условия обмена/продажи), может что-то заказать и т.д.
Ключевой вопрос: как быть, если быстрый поиск не дал результатов? Отпустить расстроенного пользователя на другие сайты? Нет, так не пойдет… Надо дать ему возможность оставить свои пожелания, и по мере поступления новых книг, производить все новые и новые поиски – до тех пор, пока нужные книги не будут найдены.
В качестве основы, как можно догадаться, используется все тот же быстрый поиск, который перебирает все поисковые слова, введенные пользователями, и формирует таблицу результатов. Чтобы не напрягать хостера, я делаю такой поиск на локальной копии сайта (на своем домашнем компьютере), а затем выгружаю результаты обратно на сайт. После этого почтовый робот рассылает e-mail уведомления: «Здравствуйте, по вашему запросу найдена новая книга…»
С точки зрения пользователя все выглядит весьма удобно: достаточно один раз ввести свои запросы, а потом тебе на почту приходят сообщения. Как говорится, «мы работаем, чтобы вы отдыхали». 🙂
Некоторые технические детали: периодичность запуска – раз в три дня, из где-то 60 обрабатываемых запросов (сервис только-только запустился) по трем-четырем обязательно находятся новые книги (хороший процент). Количество записей, участвующих в поиске (т.е. новых, появившихся за 3 дня) – около 150. Поиск ведется по двум раздельным полям – авторы и названия книг (в этом плане все просто – достаточно искать вхождение подстроки). В целом, пока довольно скромно, но, чувствую, дальше будет расти.
Полагаю, наличие обоих видов поиска на сайте дает свои плюсы. Для пользователей, как я отмечал, это удобство поиска информации. Для владельца сайта – поддержание постоянного интереса аудитории. Конечно, поиск по книгам – это довольно простой вариант, но, думаю, при желании, можно реализовать и более сложные (в частности, с применением полнотекстового поиска).
Также было бы интересно услышать, сталкивался ли кто-нибудь с подобными вещами? (лично я видел такое в яндекс.блогах, когда можно подписаться на rss по конкретному запросу)
Быстрый поиск
Объем информации растет, а значит, могут увеличиваться время и усилия, затрачиваемые на поиск необходимых материалов. Например, при запросе по тексту вы можете получить несколько тысяч документов, и анализ такого количества документов, выбор среди них того, что действительно необходимо, займут много времени.
Сегодня востребован поиск, который позволяет:
Быстрый поиск в системе КонсультантПлюс отвечает всем этим требованиям. Он позволяет легко ввести запрос в одну строку и сразу получить результаты поиска в коротком списке документов (не более 50 документов).
Давайте посмотрим, как выглядит и как работает Быстрый поиск.
Быстрый поиск представляет собой строку для ввода запроса (как в интернет-поисковиках).
Вы можете начать поиск сразу после запуска КонсультантПлюс, уже со Стартовой страницы, не тратя времени на выбор необходимого раздела системы и полей Карточки поиска. Достаточно щелкнуть по ссылке на Быстрый поиск на Стартовой странице. В новой Технологии ПРОФ 2012 вести Быстрый поиск можно не только по всем документам системы, но и по отдельным видам информации (законодательство, судебная практика, консультации, формы документов).
Вы можете получить историю запросов по Быстрому поиску, нажав специальную «стрелку» в конце строки ввода.
Как работать с Быстрым поиском?
В одной поисковой строке можно задать любые известные вам сведения о документе, который хотите найти, или же слова (фразу), описывающие вопрос, по которому надо найти информацию. Запрос вводите простым языком, можно использовать общепринятые сокращения и профессионализмы.
Быстрый поиск удобен и эффективен для поиска:
Как устроен Быстрый поиск?
Особенностью Быстрого поиска является его интеграция с Правовым навигатором.
Работает это следующим образом. По вашему запросу система не только найдет документы по проблеме, но и отберет соответствующие ключевые понятия Правового навигатора (если такие существуют).
В результате вы имеете выбор: начать работу со списком документов или ознакомиться с рядом отобранных ключевых понятий Правового навигатора (расположены справа от списка в окне с результатами поиска).
Список документов по результатам Быстрого поиска
В начале списка располагаются документы, в которых наиболее полно раскрывается запрос. Чаще всего ответ на вопрос содержится в первом или одном из первых документов списка.
Быстрый поиск файлов
От переводчика: предлагаю вашему вниманию перевод очень старой статьи, опубликованной 15 января 1983 года. Несмотря на столь внушительный возраст, статья показалась мне интересной, и возможно, что она будет полезной для кого-то и сегодня. На эту статью, кстати, ссылается раздел справки man locate(1) на opennet.ru: https://www.opennet.ru/man.shtml?topic=locate.
Краткое содержание
Статья описывает механизм быстрого поиска файлов в UNIX. Он объединяет два метода компрессии данных с новой техникой поиска строк, и предназначен для быстрого поиска произвольных файлов. Код, интегрированный в стандартную утилиту find, производит поиск в предварительно созданной базе данных, обновляемой ежедневно. Это отличает его от обычного механизма поиска совпадений ключа с кандидатами, которые генерируются «на лету» из разбросанной (по диску) структуры директорий.
База данных путей к файлам является инкрементально-кодированным, отсортированным в лексикографическом порядке списком (иногда называемом «сжатым спереди» файлом), который также подвергнут обычному биграмному кодированию с целью получения эффективного сжатия. Коэффициент сжатия составляет от 5 до 6 по сравнению с обычным ASCII-представлением. Список сканируется с использованием модифицированного линейного поиска, специально приспособленного для инкрементального кодирования, при этом типичное время, затрачиваемое алгоритмом, на 40-50% меньше, чем обычный поиск.
Введение
Поиск файлов в компьютерной системе, или компьютерной сети, является сложным процессом. Пользователи UNIX могут осуществлять его различными способами, начиная с манипуляциями командами cd, ls и grep, до специализированных команд, таких как, разработанных в Беркли whereis и fleese, и до более распространённой юниксовой команды find.
К несчастью, fleece (из Беркли) ограничен домашней директорией, а whereis может искать только системный код и документацию, расположенную в стандартных местах.
конечно, может искать произвольные файлы, но очень медленно, так как использует рекурсивный спуск по всей файловой системе, безжалостно разбросанной по всему диску. Нетерпение побудило нас разработать альтернативный (по отношению к методу «ищите и обрящете») метод поиска путей к файлам.
Предварительные вычисления
Почему бы не построить просто статический список всех файлов в системе и искать по нему grep-ом? Типичная система, содержащая 20000 файлов, будет содержать 1000 блоков имён файлов, даже если сократить /usr до /u. Grep на нашей ненагруженной системе PDP-11/70 обрабатывает 30-40 блоков в секунду, и потребует полминуты на сканирование. Это неприемлемо для часто используемой команды.
Но если мы принесём небольшую жертву — невозможность поиска файлов возрастом меньше суток, то это не создаст больших проблем, так как тот, кто создал такой файл, и так, скорее всего, находится в пределах досягаемости, или, возможно, файл ещё не готов к использованию. Старые файлы, созданные другими группами пользователей, с другими соглашениями именования файлов — это наиболее вероятные кандидаты на поиск.
Сжатие
Для ускорения доступа для приложений, можно предложить использовать бинарный поиск или хэш-таблицу, но такие схемы не работают хорошо для частичного сравнения, если нам интересна только часть имени. Легко реализуется техника сжатия упорядоченных данных, известная как инкрементальное кодирование, которая была применена для сходной задачи сжатия словаря [Morris/Thompson, 1974]. В этом случае вычисляется наиболее длинный префикс предшествующего имени. Например:
Декодирование будет простым (объявления переменных опущены)
где math — функция, определяющая, содержится ли подстрока name в строке path.
Фактически, так как кодированный список примерно в пять раз короче некодированного, и декодирование производится очень просто, программа работает от трёх до четырёх раз быстрее, чем grep на текcтовом файле.
Ещё быстрее
Такой подход уже является полезным, но оставляет место для дальнейших усовершенствований. (Примечание: этот код используется в утилите find. Нет необходимости обременять UNIX ещё одной командой [и man-страницей], когда мы можем улучшить существующую аналогичную программу. К счастью, не существует вызова find с двумя аргументами, и мы можем заполнить пустоту без приукрашиваний:
Отметим, что код, приведённый выше, по-прежнему производит поиск по распакованному списку, хотя и в памяти, а не на диске. Этого можно избежать путём сравнения строки с подстрокой в обратном направлении. Пусть namend указывает на последний символ строки name, и заменим math на:
Это проще понять, рассмотрев три случая. Если подстрока находится полностью справа от cutoff, сравнение будет заканчиваться успешно. Если они перекрываются, cutoff становится «мягким» и сравнение продолжается. Если подстрока лежит полностью слева от cutoff, то совпадение было бы выявлено для предыдущих строк, а значит, мы можем не выполнять этот поиск! Технически, cutoff может быть перенесён на path немедленно после выполнения сравнения. Это условие опущено выше.
Двухъярусная техника
Можно избежать замедления поиска, вызванного обработкой символов шаблонов поиска. При этом мы обрабатываем часть имени, не содержащую метасимволы, и используем более медленную рекурсивную функцию amatсh внутри find. То есть,
где globchars устанавливается, если name содержат метасимволы. Пример использования шаблона поиска для простой команды man:
Дальнейшие улучшения
Продакшн-код утилиты find увеличивает степень сжатия ещё на 20-25% путём замены самых распространённых двухсимвольных сочетаний на непечатаемые ASCII-коды. «.c» и «.P» встречаются особенно часто.
Другие алгоритмы, реализующие другие компромиссы между временем и размером данных, например, алгоритм Хаффмана [Reghbati, 1981] не выглядят многообещающими: они всего лишь заменяют ограничение по производительности ввода-вывода ограничением по быстродействию.
Могут быть использованы методы сублинейного поиска Бойера-Мура (Boyer-Moore) [Boyer, 1977] или метод макромоделей [Storer/Szymanski, 1982].
В заключение нужно отметить, что мы провели сканирование 19000 имён файлов за несколько секунд, использовав 180 блоков и код на С, умещающийся на двух страницах.
Быстрый поиск в интернете — что это?
Исследуя посещаемость своих сайтов, вебмастера наверняка обращали внимание, что среди многих параметров, определяющих переходы на их страницы по поисковым запросам, есть так называемый «Быстрый поиск».
Что же такое «быстрый поиск» и как он осуществляется?
Действительно, когда есть конкретный поисковой запрос, то понятно какую информацию искал пользователь. А быстрый поиск? Что это за способ? Как его сделать — ведь он быстрый, а значит удобен для пользователя интернетом и экономит его время? Действительно — этот факт можно доказать.
Как пользователь ищет информацию по поисковому запросу? Он вводит в окно поисковой системы браузера слово или фразу либо печатая слова, либо копируя из текста. Копировать текст можно из текстового редактора или откуда-то еще и вставлять его в поисковое окно. Но это не будет «быстрый поиск», хотя — копированием и вставкой фразы мы достигаем более быстрого эффекта поиска информации. Особенно, если печатаем медленно 🙂
Но и этот способ не соответствует термину счетчиков метрики под соответствующим названием. Это нечто другое.
Давайте поразмыслим: ведь мы говорим о быстром поиске в интернете. А интернетом мы не сможем пользоваться без специальной программы — браузера. Значит ли это, что именно браузер помогает осуществлять быстрый поиск в прямом значении этого слова? Лишь потом он «превращается» в поисковой запрос — фразу «быстрый поиск»? Все так и есть.
Представьте себе, что пользователь интернетом, читая какую-либо статью, встретился с незнакомым термином. Если он не понимает смысла термина или фразы — он может не уловить достаточно пóлно смысл содержания статьи или ее абзаца. Для того, что бы термин понять, он должен снова обратиться к поисковикам, что бы найти информацию о смысле термина (фразы). Что бы быстрее это сделать, более-менее опытный пользователь интернетом просто скопирует термин, а затем вставит его в адресную строку браузера и использует выбранный им поисковик.
Оказывается, браузер может помочь сделать эту операцию еще быстрее! Для этого, после выделения термина (фразы) в статье, нужно просто правой кнопкой мыши, кликнув по выделенному тексту открыть контекстное меню и далее, найдя строку «Искать … (ваша поисковая фраза)… в Google (или установленной вами поисковой системы)» — кликнуть по ней.
Далее произойдет автоматический переход на странице поиска по этой фразе (термину).
Так вот, действительно быстро, можно использовать любую поисковую систему с помощью браузера. Если найденная пользователем информация в поисковике и переход по ссылке приведет на страницу вашего сайта — это и будет запрос, использованный им как фраза метрики «быстрый поиск».
Как узнать фразу, по которой совершен быстрый поиск
Для этого я приведу пример с помощью сервиса статистики LiveInternet. Выберем из контекстного меню функцию «по поисковым фразам», а в окне «Фильтр» — параметр «Только». Введем в специальное окно фильтра фразу «быстрый поиск».
Нажимаем кнопку «ОК» и, если на страницы вашего сайта производились переходы с помощью быстрого поиска, в соответствующем окне они отразятся. Выбор периода времени (день, месяц, неделя) можно сделать и после поиска.
Как видим — все очень просто!
Не забудем нажать кнопки соцсетей. Поделитесь этой информацией, пожалуйста.
Что такое «Быстрый поиск», как и где им можно пользоваться
Здравствуйте всем, заглянувшим на огонёк. Человек – странное создание, которое не хочет лишний раз утруждаться и тратить время, но при этом ему ничего не стоит напрячь свои извилины, дабы придумать новые способы облегчить себе жизнь. На этой ядерной смеси человеческой лени и предприимчивости замешаны все великие изобретения – колесо, велосипед, молния на куртке вместо пуговиц, телефония, всемирная сеть, пульт от телевизора, доставка еды на дом и быстрый поиск. О последнем и поговорим.
Определение
Быстрый поиск – это комбинация определённых действий, позволяющая найти необходимое самым быстрым способом из всех возможных. Если применить это к повседневной жизни — чтобы быстро найти телефон на него нужно просто позвонить, иголка в стоге сена быстрее обнаружится, если использовать магнит, а поиск адреса в незнакомом городе ускорит навигатор. Применительно к работе за компьютером – значительно облегчить и ускорить её процесс, как во внутренних ресурсах ПК, офисных программах, так и в интернете, поможет использование функции быстрого поиска. Расскажу подробнее обо всех возможностях.
Компьютер
Осуществить быстрый поиск любых файлов на компьютере можно с помощью внутренних ресурсов машины или посредством сторонних программ, изобретённых компьютерными гениями специально для этих целей.
Помощник
Когда я говорил про внутренние ресурсы машины, то имел в виду встроенного в операционную систему «Поискового помощника». Рассмотрим на примере двух версий «Виндовс» — XP и «семерки», так как поисковики в них очень отличаются. Но при этом в более ранних редакциях ОС функция поиска устроена также как в XP, а в новых – аналогично «семёрке».
Windows XP
В Windows XP «Поисковый помощник» запускается тремя способами:
Данная функция предоставляет пользователю следующие возможности:
Windows 7
В Windows 7 нет как такового «Поискового помощника». Данная функция доступна непосредственно в меню «Пуск», в котором присутствует специальная строка «Найти программы и файлы», куда следует вводить имя (целиком или часть). Результаты отразятся здесь же в виде перечисления всех файлов, имеющих в названии или среди содержимого заданный набор символов. Результатов, как правило, всегда очень много, чтобы просмотреть их все необходимо нажать на соответствующую кнопку. В итоге раскроется окно расширенного поиска, в котором можно настроить его параметры (тип, место поиска, размер, дата изменения…) и значительно уменьшить количество найденных объектов.
Программы
Усовершенствования, применённые разработчиками к «Поисковому помощнику», на мой взгляд, сделали его неудобным. Может, кто-то не согласится, так я не настаиваю – ваше право. Но со своей стороны рекомендую для быстрого поиска файлов установить на компьютер специальную программу, коих в интернете представлено очень много:
Таких утилит действительно полно и все они достойны внимания, но я расскажу подробнее про ту, что занимает первую строчку списка. Everything – мой выбор, я рекомендую её всем и каждому. Нравится она мне тем, что не занимает много места на компе (чуть более 4 MB), не грузит процессор, работает моментально и не требует каких-то особых навыков. Просто запускаешь её, начинаешь набирать в пустой строке нужные символы и уже видишь результаты. Ввёл две буквы – в нижнем окне появились вероятные варианты. Ввёл ещё один знак – результаты тут же обновились. Обычно не приходится вводить имя искомого файла целиком, хватает 4 или 5 знаков. Оперативно и удобно – это то, что я ценю в софте.
Друзья, обратимся к офисным программам и посмотрим, как работает быстрый поиск в них, например, в «Ворде». Для чего может понадобиться эта функция в текстовом документе? Например, чтобы уменьшить показатель академической тошноты — процент повторения ключевых слов, которые требуется быстро найти и заменить на другие. Осуществить быстрый поиск заданных слов и фраз в тексте можно с помощью основного меню программы и клавишами.
Для начала рассмотрим, как пользоваться быстрым поиском в «вордовском» документе посредством его меню. Требуемый инструмент расположен во вкладке «Главная», в разделе «Редактирование» и представлен тремя основными возможностями – «Найти», «Заменить» и «Перейти».
Найти можно слово, словосочетание, набор символов, знаки табуляции и препинания, разрывы, графические объекты, определённо отформатированный текст и пустое пространство. Доступны такие параметры поиска, как слово целиком, с учётом регистра, все словоформы и произношения, с учётом префиксов и суффиксов, без учёта пробелов и знаков препинания. Панель настроек раскрывается / закрывается кнопкой «Больше» / «Меньше».
Всё это актуально и для функции «Заменить», но только указать нужно два слова — что искать и на что заменять. Функция «Перейти» отвечает за переход к указанному номеру страницы, строки, раздела, рисунку, формуле, объекту, заголовку и так далее.
Клавиши
Раскрытие инструмента «Поиск» в «Ворде» возможно также посредством клавиш F и CTRL, точнее, одновременным их нажатием. В результате появляется то же самое окно, рассмотренное нами выше. Есть ещё несколько полезных сочетаний клавиш, одновременное нажатие которых пригодится при осуществлении поиска в «Ворде»:
Excel
Друзья, давайте теперь разберёмся, как пользоваться поиском в Excel, попасть в его окно можно из меню программы или нажав определённые клавиши.
Найти
Инструмент «Быстрый поиск» в Excel располагается во вкладке «Главная». Для его запуска необходимо раскрыть меню раздела «Найти и выделить» и выбрать пункт «Найти».
В открывшемся поисковом менеджере необходимо ввести искомый набор символов и нажать одну из кнопок — «Найти далее» (ищет одно ближайшее совпадение), «Найти все» (все имеющиеся совпадения отобразятся ниже).
Кнопка «Параметры» раскрывает менеджер настроек, в котором можно задать формат, где искать (на листе или во всей книге), способ просмотра (по строкам или столбцам) и область поиска (формулы, значения или примечания).
Во вкладке «Заменить» отображается всё то же, но добавляется строка для ввода набора символов, который будет вставляться вместо найденных совпадений. И добавляются соответствующие кнопки «Заменить» и «Заменить все».
Фильтры
Замечательной альтернативой поиска по совпадениям в таблице Excel является инструмент «Фильтры», попасть который можно, раскрыв в главной вкладке меню раздела «Сортировка и фильтр» и выбрав пункт «Фильтр». В результате у выбранной ячейки появится стрелочка выпадающего списка, нажатие на которую раскроет окно настроек фильтра. В пустую строку требуется ввести искомое значение и установить галочки на необходимых параметрах отбора. В итоге в исходной таблице останутся только ячейки, содержащие заданное значение. Остальные ячейки не удалятся, а только скроются на время из виду.
Горячие клавиши
Все инструменты, отвечающие за поиск в «Эксель» также можно раскрыть нажатием определённых комбинаций клавиш:
Выпадающий список
Иногда документ Excel в одном листе содержит очень большое количество столбцов и ячеек, для облегчения проверки данных и быстрого поиска нужных значений можно создать и использовать выпадающий список. Делается он так:
Всё, теперь при вводе любого значения в выпадающем списке можно выбрать подходящий вариант и не мучиться с длительным поиском по листу и полным написанием.
Интернет
Такая удобная опция «Быстрый поиск» нашла применение и в интернете. Рассмотрим подробнее все её веб-проявления.
Браузеры
Функцию быстрый поиск по сайту поддерживают все известные браузеры, в которых вызвать поисковую строку можно посредством меню или используя определённые клавиши. Меню – это кнопочка, изображающая список (несколько полосочек столбиком), а в нём имеется соответствующий пункт «Найти».
Чтобы осуществить быстрый поиск интересующей фразы на странице любого сайта, нужно использовать следующие комбинации клавиш:
В браузере Firefox быстрый поиск слова или фразы на странице сайта можно осуществлять без открытия поисковой строки. Для этого в настройках нужно включить параметр «Искать текст по мере его набора». После включения достаточно будет начать набирать на клавиатуре искомые символы и на странице начнут подсвечиваться совпадения.
Поисковики
Поддерживают данную опцию и поисковые веб-службы, хотя каждый по-своему. Например, чтобы что-то быстро найти в Google, достаточно это выделить, нажать правую кнопку мыши и выбрать пункт «найти «ХХХХХ» в Google», где ХХХХХ – это искомый запрос.
Yandex
Интересно реализован быстрый поиск в «Яндексе». Уже при вводе первых символов начнут отображаться вероятные результаты, причём не просто популярные запросы, а наиболее подходящие адреса сайтов, перейти на которые можно сразу, игнорируя страницу результатов поиска. К тому же умная поисковая строка моментально выдаёт ответы на простые вопросы – точное время, погода, курс валют и так далее. Напротив подобного запроса сразу же отобразится ответ на вопрос.
По сайту
Кроме всего вышеперечисленного, на каждом веб-ресурсе предусмотрен свой быстрый поиск, осуществляемый по сайту. Наверняка все помнят и не раз пользовались пустой строчкой с изображением лупы, когда нужно быстро узнать какую-нибудь информацию. Эта опция хороша тем, что выводит совпадения не только на текущей странице, но и во всех разделах сайта. Например, наличие лекарства в каталоге интернет-аптеки.
Есть ещё замечательный метод, особенно для нахождения текстовой информации в статьях или поисковых запросов с выделением нужной фразы и нажатием правой кнопки. Подробности смотрим на скриншотах внизу.
Вот, кажется, и всё, что я хотел вам рассказать. Если что-то забыл, извините. Если и у вас есть интересные лайфхаки на заданную тему, и вы хотите поделиться ими с человечеством, то пишите в комментариях. А я прощаюсь с вами до следующих обсуждений. Желаю всем озарений и новых гениальных идей.