Летняя школа Яндекс задание 1 Стажировка в группе разработки инструментов аналитики (Cанкт-Петербург)

Здание № 1 из списка предложенных для отбора на летнюю школу от Яндекс. Общий список опубликован здесь. Для простоты обсуждения каждое задание публикуется отдельно.

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

Наша команда разрабатывает инструменты  анализа и оценки качества поисковых систем. Мы пишем модуль большой библиотеки, которая позволяет нам получить ответы различных поисковых систем (например, Яндекс и Google).

Задание. Выберите одну из задач, на каждую из них не стоит тратить больше 4 часов. Предпочтительный язык программирования — java. Решение присылайте в виде архива или ссылкой на репозиторий.

Парсер. Есть Яндекс и к нему можно задавать запросы. При заполнении формы пользователь попадает на страницу результатов. Напишите код, который выделит из этой странице подокументно  ответ системы, где документ это урл, текст заголовка, краткая аннотация и зелёная строчка. После этого, нужно выкачать html-страницы этих документов и сохранить их в папочку в виде файлов. Аккуратно, Яндекс банит тех, кто много качает.

FixedSizeCache. Есть такая структура данных, в которую можно складывать по ключу объекты, и количество таких пар ключ-значение  ограничено,  назовем такую структуру кэшом. Доступ к данным в кэше идет быстрее, чем выборка исходных данных из медленного источника (например, из базы данных) или их перевычисление, за счет чего уменьшается  среднее время доступа к элементу. Но кэш ограничен,  следовательно возникнет ситуация, когда следующий объект мы уже не сможем добавить в кэш, не удалив какой-нибудь элемент. Существует несколько стратегий  выбора элемента, подлежащих  замене. Среди известных: FIFO и LRU. Нужно cпроектировать  интерфейсы, реализовать структуру.

Share

Tags: , ,

Leave a Reply