Многие из нас все еще попадают в ситуации, когда нужно быстро найти важную информацию, но доступ в интернет ограничен или отсутствует. И одно дело – пытаться открыть развлекательный пост на сайте, и совсем другое – искать номер телефона горячей линии банка или больницы. Сегодня я впервые расскажу читателям Хабра о том, как ускорение поиска в приложении Яндекс привело к возможности искать важную информацию без интернета.
Но для начала нужно понять главное: зачем мы вообще взялись за офлайн-поиск, если сайты из результатов поиска все равно недоступны при отсутствии сети?
EDGE-поиск
На радарах Яндекса традиционно видны люди, которые вводят запрос, но затем покидают страницу, не дождавшись загрузки из-за плохого мобильного интернета. В этой ситуации мы не могли повлиять на общее качество сети и скорость загрузки всех сайтов, но сделать менее болезненным хотя бы процесс поиска и сэкономить этим немного времени стоило попытаться. Собственно, поэтому этот проект изначально и назывался EDGE-поиском, т.е. поиском при медленном интернете.
Ускорить поиск можно двумя способами. Во-первых, максимально оптимизировать веб-версию и те API, которые использует приложение. И эта работа тоже ведется, но даже этого недостаточно. Во-вторых, можно заранее загрузить на устройство то, что пригодится при плохом соединении. Очевидно, что уместить весь индекс интернета в телефоне физически невозможно. Поэтому нужно было зайти со стороны локального хранения уже готовых результатов поиска по конкретным запросам. По каким? Предсказывать будущие запросы человека с высокой точностью пока никто не умеет (но мы учимся). Поэтому берем популярные повторяющиеся запросы.
Когда мы говорим про популярные запросы, то многие представляют себе запрос [вконтакте] и несколько подобных. На самом деле у нас сотни тысяч менее очевидных запросов, которые регулярно повторяются в больших количествах. А это уже многие сотни мегабайт результатов. Причем сохранять мы планировали не только результаты поиска, но и подсказки, которые появляются в процессе ввода запроса. И здесь многие спросят: зачем хранить в офлайне подсказки, ведь человек вполне способен ввести запрос и без них?
При вводе запросов в приложении Яндекс пользователи видят не обычные поисковые подсказки, а в виде отдельных слов/пар слов (т.е. предиктивный ввод текста). Обычные подсказки нельзя отредактировать: если нужно дописать слово, то придется вводить весь запрос самостоятельно. Подсказки в виде слов позволяют вносить правки, покрывают куда бОльшее число запросов и значительно ускоряют их ввод человеком.
Но главное в том, что подсказки оказались особенно полезны при работе в офлайн-режиме. Эти подсказки помогают людям сформулировать свой вопрос так, как это делает большинство, а это, в свою очередь, увеличивает шанс того, что ответ будет получен из локального кэша. Именно поэтому важно было сохранить и подсказки.
Эмпирически мы подобрали определенный минимум поисковых запросов (порядка 150 тыс.) и подсказок, меньше которого хранить смысла уже не оставалось. Но объем всего этого багажа по-прежнему выходил за рамки приличного (несколько сотен мегабайт). Даже с учетом того, что для каждого запроса хранились лишь топ-10 результатов. Нужно было что-то делать.
От оптимизации к офлайну
Начали искать все то, что можно было отправить «под нож». Каждый результат содержал в себе не только ссылки на сайты, но и фавиконки и сниппеты. Фавиконки – это картинки, а значит, здесь можно было добиться серьезной экономии. Один и тот же сайт может встречаться в результатах для совершенно разных запросов, поэтому мы изначально не дублировали фавиконки, а хранили их по сайтам. А дальше мы сделали так, что вероятность сохранения фавиконки прямо пропорциональна частоте появления сайта в результатах поиска. Иными словами, мы отказались от большинства фавиконок, но визуально это не сильно бросается в глаза.
Чем больше мы сокращали обычные результаты поиска в пользу уже готовых ответов, тем ближе подходили к пониманию, что наш EDGE-поиск уже не просто ускоряет работу, а способен отвечать на широкий круг вопросов вообще без соединения с интернетом. Сами того не замечая, мы уже работали над офлайн-поиском. А значит, ставку надо делать на готовые ответы. Осознав это, мы приступили к обогащению базы важными фактами, которые до этого не могли попасть туда из-за ограничения популярности запроса. Эти результаты содержат только ответы, без выдачи сайтов.
По похожей схеме мы скопировали в базу все карточки объектного ответа и все запросы, для которых объектный ответ доступен. Карточки при офлайн-поиске отличаются от оригиналов почти полным отсутствием картинок: мы убрали их из соображений экономии.
Рост базы фактов требовал дальнейшей работы над оптимизацией и такой структуры хранения данных, которая бы бережно относилась к ресурсам устройства.
Словари
База скачивается на устройство не целиком, а в виде отдельных словарей, причем только при Wi-Fi-соединении и только при достаточном уровне заряда. Разбивка на словари сделана по двум причинам. Во-первых, если при загрузке соединение рвётся, то во время следующей попытки будут скачиваться только те словари, которые не успели скачаться раньше. Во-вторых, для дополнительной экономии места база загружается и хранится на устройстве в сжатом виде, но при каждом запросе распаковывается не целиком, а только нужными частями.
Каждый словарь содержит запросы, начинающиеся на определенные буквы, а также все данные для выдач и подсказок по этим запросам. Отсортировать данные перед разбивкой на словари именно по первым буквам запросов оказалось логичнее, чем, например, по их популярности. Представьте ситуацию: в первом словаре лежат самые популярные запросы, во втором - чуть менее популярные и так далее. Но популярность запросов часто меняется, а это приведет к необходимости регулярно обновлять словари только ради того, чтобы переместить запрос из одного в другой. Это затраты трафика, энергии и времени. Поэтому было важно сделать так, чтобы при актуализации базы запросы не перемещались между словарями. Алфавитный порядок оказался простым и эффективным решением.
Ответы на одни и те же запросы могут различаться в разных частях страны, поэтому для разных регионов формируются свои словари. Причем при кратковременных визитах в другой регион приложение не будет спешить с обновлением словарей – мы предусмотрели сценарии командировок и туризма.
Как бы мы ни старались, офлайн-поиск покрывает не все возможные запросы, но уже сейчас выручает в среднем при каждом третьем. Как и для любого среднего результата, это значит, что одна часть пользователей сталкивается с офлайн-ответами куда чаще, чем другая. Поэтому мы, конечно же, позволяем полностью отключить офлайн-поиск в настройках.
Нашей команде было бы интересно узнать мнение читателей Хабра об этом направлении и получить отзывы о работе беты
Мобильные приложения, выпускаемые компанией Yandex, являются инструментарием для оптимизации жизни пользователя. Здесь вы не найдете игр, развлекательных головоломок и фильтров для фотографий. Приложения Yandex рассчитаны на: упрощение поставленных задач, мониторинг расходов, быстрые покупки, заказ дешевых билетов и пр. Ниже предлагаем рассмотреть самые полезные ПО, которые пригодятся каждому.
1. Яндекс.Такси
Это приложение для быстрого заказа бюджетного такси в любую точку вашего города. Главное преимущество данного ПО в том, что пользователь может сравнить стоимость переезда из одной точки в другую. Благодаря этому приложению вам не нужно звонить оператору, уточнять цены, разменивать купюры и переживать за своевременную подачу автомобиля. Чтобы заказать машину в Яндекс.Такси, вам нужно заполнить маленькую заявку
- адрес подачи машины;
- адрес доставки пассажира;
- время (можно указать «через 10 минут», и машина прибудет в ближайшее время);
- мобильный телефон;
- тариф (есть «Эконом» и «Бизнес»).
2. Яндекс.Здоровье
Это приложение-консультант в области здравоохранения. Разумеется, ПО не заменит осмотр у врача, и пользователю в любом случае придется посещать больницу для уточнения диагноза.
Приложение создано для тех, кто хочет узнать подробности о своем заболевании, отзывы о прописанных лекарствах или получить совет от врача онлайн.
Возможности Яндекс.Здоровье:
- консультации с врачами разных специализаций;
- полная конфиденциальность;
- круглосуточная помощь;
- общение с доктором в чате или по видеосвязи.
Консультации абсолютно бесплатны. Здесь вы можете задать любой интересующий вопрос и получить развернутый ответ от профессионала. Тема может быть любой: обработка ран, беременность, инфекции, грипп у ребенка и пр.
3. Яндекс.Метро
В приложение загружены карты метрополитена Москвы, Питера, Киева, Минска и Стамбула. С Яндекс.Метро вам больше не нужно спрашивать у прохожих о местонахождении той или иной станции, стоимости проезда и точные названия веток.
Просто установите приложение на смартфон и пользуйтесь им каждый раз, посещая вышеперечисленные столицы. Здесь вы найдете информацию о метро (время работы, цены на билеты и пр.), расписание, нумерацию остановок и много чего другого. С Яндекс.Метро вы не заблудитесь в большом городе!
4. Яндекс.Штрафы
Приложение пригодится как автовладельцам, так и тем, кто машины не имеет. Интерфейс очень лаконичный: отображает только то, что нужно знать пользователю. Яндекс.Штрафы отображает:
- сумму, которую нужно заплатить;
- период, за который вы обязаны выплатить штраф;
- выдержку из законодательного акта, согласно которому вы были оштрафованы.
Установите это приложение, даже если у вас нет авто (пешеходов тоже штрафуют!). Оплачивать можно прямо через программное обеспечение, кликнув на соответствующую иконку под суммой. Всё, что требуется от пользователя – это ввести реквизиты, с которых будут сняты деньги (банковская карта или электронный кошелек).
5. Яндекс.Разговор
Очень нужное приложение, которое может пригодиться в любой момент. Это ПО, облегчающее общение с незрячими и слабослышащими людьми. Приложение реагирует на голос и превращает записанное в текст, и наоборот – озвучивает то, что было напечатано. Единственное правило: слова нужно произносить внятно и разборчиво, чтобы система их не спутала с однокоренными и схожими сочетаниями.
Компания Яндекс обновила своё фирменное приложение для мобильных устройств под управлением Android и iOS. Обновлённое приложение призвано стать поистине универсальным помощником в самых разнообразных повседневных ситуациях.
Так, например, в приложении для Android можно проверить, где находятся ближайшие остановки общественного транспорта и какие номера маршрутов с них отправляются (их интервалы движения и др.). На данный момент информация о транспорте доступна более чем в 50-и городах России и зарубежья.
Выгодные предложения поблизости – скидки, действующие в ближайших магазинах (данные предоставлены сервисом «Едадил»).
Афиша – перечень фильмов, идущих в кинотеатрах с подробным описанием, отзывами и так далее, при этом купить билет на понравившийся фильм можно непосредственно в приложении.
Места поблизости – магазины, аптеки, банкоматы, АЗС и т.д., при этом учитываются часы работы организаций, т.е., если та или иная организация закрыта или закроется в самое ближайшее время, то её не будет в списке, что позволяет, используя приложение, легко найти в поздний час круглосуточный или, работающий допоздна магазин. До любой точки можно выбрать и построить наиболее оптимальный маршрут: пешком, на автомобиле или общественном транспорте.
Офлайн-режим – выручит, когда интернет-подключение слабое или вовсе отсутствует (Яндекс сохраняет ответы на популярные поисковые запросы, позволяя пользователю быстро получить короткую справку, к примеру: телефон, адрес организации и пр.). В настоящее время офлайн-режим доступен только в приложении для iOS, на Android он появится позднее.
Яндекс.Браузер является бесплатным и современным браузером для компьютера с функцией Турбо-загрузки «тяжелых» веб-страниц на максимально быстрой скорости.
Скачать Яндекс Браузер для Windows 7, 8 и 10
Создано приложение на известном «движке» Blink, который был разработан и первым внедрен в Chrome от Google. Успех программы у русскоязычной аудитории пришел благодаря минималистичному и приятному дизайну, а также встроенным и полезным виджетам разных сервисов Яндекса собственной разработки.
Отличительные особенности:
- интегрированный модуль для просмотра и редактирования PDF, DOC, XLS, TXT и других документов;
- встроенный антивирус от Лаборатории Касперского, способный проверять загружаемый контент и отдельно скаченные файлы;
- на панели есть быстрый доступ к погоде, электронной почте, просмотр пробок, вход в облачное хранилище (диск), а также «умный» поиск;
- встроенное расширение Adguard с пожизненной лицензией (включается в Настройки — Дополнения, раздел Блокировка рекламы).
Скачать Яндекс браузер с официального сайта бесплатно на русском языке можно для ОС Виндовс 7, 8 и 10 любой битности по ссылкам ниже. Установка стандартная и по умолчанию.
Мобильный браузер корпорации Яндекса стал популярным и завоевал в рунете лидирующие позиции. Предоставляет пользователям мобильных устройств Андроид моментальное открытие даже весьма загруженные web-страниц сайтов на смартфонах и планшетах с помощью режима Турбо 2.0. Бесплатный веб-обозреватель Yandex.Browser для удобства пользователей легко и незаметно адаптирует страницу сайта под размер экрана телефона.
Особенно на мобильных девайсах повышено внимание к безопасности и технология Protect в случае опасного сайта предупредит пользователя, а также заблокирует передачу личных данных через открытую Wi-Fi сеть.
На бесплатном мобильном браузере есть дополнительная синхронизация с другими пользовательскими устройствами с возможностью восстановления данных даже после повторной установки через APK-файл или Market. Все встроенные и дополнительные официальные расширения можно скачать без регистрации и на русском языке.
Скачать Яндекс браузер на iPhone и iPad
Последняя версия приложения на системе iOS делает открытие и просмотр сайтов максимально комфортным, загружая значительно быстрее даже большие страницы. Пользователям iPad и iPhone предлагается функционал «умной строки» для ввода запросов с помощью клавиатуры или голоса, мощная система рекомендаций по интересам и защитник от любых вредоносных данных. Современный и простой стиль интерфейса делает бесплатный Яндекс.Браузер быстрым и удобным.
Разработчики внесли в программу так называемые конфигурации для одновременного пользования на нескольких мобильных устройствах. Яндекс браузер часто обновляется и поэтому важно следить и всегда устанавливать новую актуальную версию.
Про режим ТурбоПри медленном интернете включается сей режим. Позволяет максимально быстро ускорить загрузку страниц сайтов, а также экономить на трафике. |
Про безопасностьТехнология активной защиты Protect является уникальной в Яндекс.Браузере. Быстро проверяет скачанные файлы на возможные вирусы, защищает пароли и шифрует передачу данных в общественных незащищенных сетях. |
Про умную СтрокуСтрока поможет пользователю узнать курс рубля, сообщить о пробках в городе и многом другом. А открывать сайты проще простого, достаточно ввести часть адреса и строка предложит возможные варианты. |
Про синхронизациюСинхронизация позволяет пользователю открывать и настраивать вкладки сразу на нескольких устройствах, сохранять пароли, любимые места, данные и иметь доступ к ним с одной учетной записи. |
Установить Яндекс Браузер на компьютер можно бесплатно последнюю официальную версию по ссылке ниже. Рекомендуется производить установку по умолчанию на системный диск С для стабильной работы приложения.
Приложение Яндекс - комплексный сервис для поиска ближайших мест, транспорта, магазинов и прочей интересной информации. В него встроен удобный голосовой помощник Алиса, который упростит работу с браузером и может стать неплохим собеседником.
Возможности Яндекса
Среди множества сервисов от Яндекса данное приложение выделяется тем, что позволяет находить информацию за пару нажатий или с помощью голосового запроса.
Приложение Яндекс - универсальный помощник в поиске информации, выгодных скидок, транспорта и всего, что окружает пользователя в текущий момент. Функционал включает в себя:
- текстовый и голосовой поисковик;
- обзор актуальных новостей по миру и вашему региону;
- подробный прогноз погоды на сегодняшний день и будущую неделю;
- актуальные курсы валют;
- синхронизацию с почтовым ящиком;
- интерактивную карту с общественным транспортом;
- текущие скидки, акции и кэшбеки в ближайших магазинах;
- телепрограмму;
- поиск ближайших аптек, заправок, магазинов, кафе и так далее;
- афишу местных кинотеатров с описанием фильмов;
- полезные статьи, список которых формируется по вашим запросам.
Особенности
Для работы программы на Андроид достаточно установить, а затем авторизоваться через электронную почту Yandex. Все сервисы компании синхронизируются между собой благодаря единому аккаунту. Вот несколько основных особенностей:
- Программа совместима с фирменным голосовым помощником Алиса, которое устанавливается автоматически. Голосовое управление поисковыми запросами позволяет получать нужную информацию без входа в приложение. Для активации достаточно сказать фразу «Привет, Алиса».
- Вариативность настройки. В параметрах вручную выбираются элементы информационной ленты, настройки региона, истории запросов, появления подсказок, голосовой активации, уведомлений и так далее. Также приложение Яндекс для Андроид позволяет детально настроить фирменный виджет.
- Сервис имеет возможность сканирования QR-кодов. С его помощью вы можете за пару секунд заснять код товара и получить полную информацию в интернете. При возникновении проблем с функционалом и работоспособностью можно обратиться в оперативную службу поддержки через кнопку «Обратная связь».
Фирменное приложение Яндекс заменит несколько сторонних программ и браузер. С помощью Алисы вы сможете выйти из любой ситуации: подобрать интересный фильм, найти ближайший ресторан или АЗС. Уникальный сервис Дзен способен подбирать новости по запросам и переходам на тематические сайты, поэтому через некоторое время Yandex будет советовать только интересующие вас статьи.