Поиск без интернета. Новая бета приложения Яндекс

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

Но для начала нужно понять главное: зачем мы вообще взялись за офлайн-поиск, если сайты из результатов поиска все равно недоступны при отсутствии сети?

EDGE-поиск

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

Ускорить поиск можно двумя способами. Во-первых, максимально оптимизировать веб-версию и те API, которые использует приложение. И эта работа тоже ведется, но даже этого недостаточно. Во-вторых, можно заранее загрузить на устройство то, что пригодится при плохом соединении. Очевидно, что уместить весь индекс интернета в телефоне физически невозможно. Поэтому нужно было зайти со стороны локального хранения уже готовых результатов поиска по конкретным запросам. По каким? Предсказывать будущие запросы человека с высокой точностью пока никто не умеет (но мы учимся). Поэтому берем популярные повторяющиеся запросы.

Когда мы говорим про популярные запросы, то многие представляют себе запрос [вконтакте] и несколько подобных. На самом деле у нас сотни тысяч менее очевидных запросов, которые регулярно повторяются в больших количествах. А это уже многие сотни мегабайт результатов. Причем сохранять мы планировали не только результаты поиска, но и подсказки, которые появляются в процессе ввода запроса. И здесь многие спросят: зачем хранить в офлайне подсказки, ведь человек вполне способен ввести запрос и без них?

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

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

Эмпирически мы подобрали определенный минимум поисковых запросов (порядка 150 тыс.) и подсказок, меньше которого хранить смысла уже не оставалось. Но объем всего этого багажа по-прежнему выходил за рамки приличного (несколько сотен мегабайт). Даже с учетом того, что для каждого запроса хранились лишь топ-10 результатов. Нужно было что-то делать.

От оптимизации к офлайну

Начали искать все то, что можно было отправить «под нож». Каждый результат содержал в себе не только ссылки на сайты, но и фавиконки и сниппеты. Фавиконки – это картинки, а значит, здесь можно было добиться серьезной экономии. Один и тот же сайт может встречаться в результатах для совершенно разных запросов, поэтому мы изначально не дублировали фавиконки, а хранили их по сайтам. А дальше мы сделали так, что вероятность сохранения фавиконки прямо пропорциональна частоте появления сайта в результатах поиска. Иными словами, мы отказались от большинства фавиконок, но визуально это не сильно бросается в глаза.

Чем больше мы сокращали обычные результаты поиска в пользу уже готовых ответов, тем ближе подходили к пониманию, что наш EDGE-поиск уже не просто ускоряет работу, а способен отвечать на широкий круг вопросов вообще без соединения с интернетом. Сами того не замечая, мы уже работали над офлайн-поиском. А значит, ставку надо делать на готовые ответы. Осознав это, мы приступили к обогащению базы важными фактами, которые до этого не могли попасть туда из-за ограничения популярности запроса. Эти результаты содержат только ответы, без выдачи сайтов.

По похожей схеме мы скопировали в базу все карточки объектного ответа и все запросы, для которых объектный ответ доступен. Карточки при офлайн-поиске отличаются от оригиналов почти полным отсутствием картинок: мы убрали их из соображений экономии.

Рост базы фактов требовал дальнейшей работы над оптимизацией и такой структуры хранения данных, которая бы бережно относилась к ресурсам устройства.

Словари

База скачивается на устройство не целиком, а в виде отдельных словарей, причем только при Wi-Fi-соединении и только при достаточном уровне заряда. Разбивка на словари сделана по двум причинам. Во-первых, если при загрузке соединение рвётся, то во время следующей попытки будут скачиваться только те словари, которые не успели скачаться раньше. Во-вторых, для дополнительной экономии места база загружается и хранится на устройстве в сжатом виде, но при каждом запросе распаковывается не целиком, а только нужными частями.

Каждый словарь содержит запросы, начинающиеся на определенные буквы, а также все данные для выдач и подсказок по этим запросам. Отсортировать данные перед разбивкой на словари именно по первым буквам запросов оказалось логичнее, чем, например, по их популярности. Представьте ситуацию: в первом словаре лежат самые популярные запросы, во втором - чуть менее популярные и так далее. Но популярность запросов часто меняется, а это приведет к необходимости регулярно обновлять словари только ради того, чтобы переместить запрос из одного в другой. Это затраты трафика, энергии и времени. Поэтому было важно сделать так, чтобы при актуализации базы запросы не перемещались между словарями. Алфавитный порядок оказался простым и эффективным решением.

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

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

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

Яндекс – это все сервисы одноименной компании, собранные в одном приложении.

Использование

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

Функционал

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

Хотите быстро найти что-то в Интернете, но набирать текст неудобно, обратитесь к голосовому ассистенту Алисе – она выполнит просьбу, подскажет выход из затруднительной ситуации и даже поднимет Вам настроение. Яндекс не даст пропустить важные уведомления – приложение составит сводку персонализированных новостей, предупредит Вас о резкой смене погодных условий, "горячих" новостях, будоражащих общественность, а также расскажет об актуальных валютных курсах.

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

Ключевые особенности

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

За последнее время каталог интернет-магазина Google Play разросся до гигантских размеров. Однако пользователям от такого многообразия легче явно не стало, так как найти для своего смартфона действительно полезное приложение становится все сложнее. Ведь большинство программ для Android просто копируют более удачливых конкурентов или являются абсолютно бесполезным программным обеспечением.

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

С появлением этого интернет-сервиса в России появился еще один вид доступного общественного транспорта. Ведь теперь жители российских населенных пунктов, где работает это приложение, могут заказать такси одним нажатием пальца на экран мобильного устройства. При этом можно выбрать автомобиль, и заранее узнать стоимость поездки.

Пользоваться сервисом Яндекс.Такси очень удобно:

  • скачиваем и открываем приложение на экране Android-устройства;
  • разрешаем программе доступ к геолокации;
  • выстраиваем маршрут на карте (указываем место посадки и конечный пункт);
  • вызываем такси из свободных машин, находящихся поблизости;
  • выбираем удобный способ оплаты;
  • оформляем заказ;
  • ожидаем приезда такси.

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

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

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

Яндекс.Здоровье

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

Иными словами, теперь любой обладатель смартфона сможет в течение нескольких минут задать любой вопрос на медицинскую тему одному из высококвалифицированных и практикующих российских врачей, которые дадут ответ или рекомендацию по поводу:

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

Чудес при этом ожидать не стоит, так как консультация никогда не заменит полное обследование в поликлинике или больнице. Однако консультация высококвалифицированного специалиста явно не помешает для ранней диагностики и профилактики тяжелых заболеваний.

Воспользоваться услугами сервиса Яндекс.Здоровье не сложно. Нужно просто скачать приложение на свой смартфон, зайти в программу (потребуется устойчивое интернет-соединение) и выбрать соответствующего специалиста, а затем задать ему вопрос.

Внимание! Все консультации в Яндекс.Здоровье платные (от 99 руб). Сэкономить на общении с врачами можно за счет подписки и промоакций (меню).

Яндекс.Метро

Еще одно полезное приложение от отечественного «поисковика». Владельцы смартфонов, скачавшие на свои мобильные гаджеты программу Яндекс.Метро, получат полную информацию по 14 метрополитенам, расположенным в России и других странах СНГ.

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

  • какие станции закрыты на ремонт;
  • Когда открываются и закрываются станции метро;
  • как проехать до любого вокзала, аэропорта или другого объекта;
  • как построить идеальный маршрут;
  • в какой вагон нужно садиться, чтобы быстрее добраться до станции;
  • каким из выходов на станции лучше воспользоваться, чтобы оказаться ближе всего к месту назначения.

Яндекс.Штрафы

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

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

Яндекс.Разговор

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

Каждое из этих приложений может быть действительно полезно для владельцев мобильных Android-устройств. Попробуйте установить данные программы на свой смартфон, чтобы лично убедиться в их достоинствах.

Мобильные приложения, выпускаемые компанией Yandex, являются инструментарием для оптимизации жизни пользователя. Здесь вы не найдете игр, развлекательных головоломок и фильтров для фотографий. Приложения Yandex рассчитаны на: упрощение поставленных задач, мониторинг расходов, быстрые покупки, заказ дешевых билетов и пр. Ниже предлагаем рассмотреть самые полезные ПО, которые пригодятся каждому.

1. Яндекс.Такси

Это приложение для быстрого заказа бюджетного такси в любую точку вашего города. Главное преимущество данного ПО в том, что пользователь может сравнить стоимость переезда из одной точки в другую. Благодаря этому приложению вам не нужно звонить оператору, уточнять цены, разменивать купюры и переживать за своевременную подачу автомобиля. Чтобы заказать машину в Яндекс.Такси, вам нужно заполнить маленькую заявку

  • адрес подачи машины;
  • адрес доставки пассажира;
  • время (можно указать «через 10 минут», и машина прибудет в ближайшее время);
  • мобильный телефон;
  • тариф (есть «Эконом» и «Бизнес»).

2. Яндекс.Здоровье


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

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

Возможности Яндекс.Здоровье:

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

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

3. Яндекс.Метро

В приложение загружены карты метрополитена Москвы, Питера, Киева, Минска и Стамбула. С Яндекс.Метро вам больше не нужно спрашивать у прохожих о местонахождении той или иной станции, стоимости проезда и точные названия веток.

Просто установите приложение на смартфон и пользуйтесь им каждый раз, посещая вышеперечисленные столицы. Здесь вы найдете информацию о метро (время работы, цены на билеты и пр.), расписание, нумерацию остановок и много чего другого. С Яндекс.Метро вы не заблудитесь в большом городе!

4. Яндекс.Штрафы

Приложение пригодится как автовладельцам, так и тем, кто машины не имеет. Интерфейс очень лаконичный: отображает только то, что нужно знать пользователю. Яндекс.Штрафы отображает:

  • сумму, которую нужно заплатить;
  • период, за который вы обязаны выплатить штраф;
  • выдержку из законодательного акта, согласно которому вы были оштрафованы.

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

5. Яндекс.Разговор

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

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то