6 November 2010

Отчет с конференции Lucene Revolution

Search engines
В начале октября мне удалось побывать на конференции Lucene Revolution, которая проходила в городе-герое Бостоне. Эта конференция была посвящена открытым поисковым технологиям Apache Lucene и Apache Solr. Мне кажется, что на хабре в частности и в рунете в целом этим технологиям уделяется незаслуженно мало внимания. Давайте исправим это упущение.



Я достаточно давно занимаюсь этими технологиями, но не мог себе представить, что конференция по данной узкой специализированной области может собрать такое количество докладчиков, участников и компаний — общее количество участников было более 300, докладчиков более 40. Спектр внедрений данных поисковых технологий весьма внушительный — социальные сети, микроблогинговые сервисы, CRM платформы, интернет магазины, правительственные вебсайты, онлайновые и университетские библиотеки, сайты знакомств и даже проекты в области биоинформатики.

LinkedIn

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

По моему мнению LinkedIn имеет наиболее продвинутый поиск среди всех социальных сетей благодаря двум вещам:
  1. Использование социального графа при поиске
    То есть сортировка результатов поиска зависит от удаленности пользователей в графе социальных связей. И ведь правда — пользователя скорее всего интересует Вася Пупкин из его круга знакомых, а не тот у которого идентификатор в системе меньший или больше заполнен профиль. Дополнительно у пользователя есть возможность отфильтровать результаты поиска по заданной удаленности — первый круг / второй круг.
  2. Фасетная навигация
    Давно прошли те времена, когда плоская выдача поисковых результатов считалась писком поискового интерфейса. Интернет магазины, системы управления контентом, специализированные поисковые системы давно обогащают результаты специальными фильтрами, с помощью которых пользователь может сузить критерии поиска и в итоге добраться до нужной ему информации. Ключевая особенность пользовательского интерфейса состоит в том, что пользователь заранее видит сколько результатов он получит применив тот или иной фильтр. LinkedIn предоставляет богатый набор фильтров по работодателю, местоположению, университету и тд.

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

Twitter, миллиард запросов в день

Ежедневно около 80 миллионов новых твитов добавляется базу данных Twitter, причем задержка появления новых данных в поисковом индексе не должна быть больше нескольких секунд. Предыдущая версия поисковой системы была реализована используя основанные на MySQL технологии компании Summize. Новая версия использует немного переработанную библиотеку Apache Lucene. Twitter собирается в ближайшем будущем открыть свои наработки и интегрировать их в Apache проект.

Salesforce

Крупнейшая компания в области SaaS CRM тоже активно использует Lucene. В данный момент индекс Salesforce занимает более 8 терабайт (20 миллиардов документов). Их поиском каждый день пользуются порядка 500 тысяч пользователей и средняя нагрузка составляет около 4000 запросов в секунду.

Loggly.com

Loggly это стартап, который предлагает Cloud решение для хранения и анализа ваших логов. Вы можете настроить ваши сервера отсылать syslog логи на сервера этой компании и в последствии искать по логам и пользоваться всяческой аналитикой. Ядром архитектуры является платформа Solr Cloud, которая предоставляет возможность индексировать до 100 тысяч сообщений в секунду.

Archive.org

Коммерческое решение archive-it.org от всем известной компании archive.org предоставляющее полнотекстовый поиск почти по 1 миллиарду документов для более чем 120 заказчиков мигрирует на решение основанное на Apache Solr. В качестве поискового паука они используют микс из собственного Heretix и кастомизированного Apache Nutch.

Search.USA.gov и WhiteHouse.gov

IT бюджет правительства США составляет порядка 75 миллиардов долларов, так что неудивительно что правительственные заказы являются очень ценными для технологических компаний. Поисковый механизм на этих правительственных сайтах за последние десять лет прошел долгий путь коммерческих решений — Inktomi (2000), Fast (2002), Vivisimo (2005) и в конце концов обрел стабильность в решении с открытым исходным кодом Apache Lucene/Solr. Еще один интересный факт состоит в том, что разработчики используют Rackspace Hosting и Amazon Web Services для хостинга, Pivotal Tracker как средство управления проектами и github для хранения исходного кода. Многие коммерческие корпорации стараются держать полный контроль над всеми этими вещами внутри своего интранета, так что видеть такую открытость при разработке государственного правительственного решения весьма удивительно.

Библиотеки и институты (HathiTrust, Yale, Smithsonian)

Различные университетские библиотеки используют Apache Solr для поиска как по каталогу, так и предоставляя полнотекстовый поиск по отсканированным и распознанным книгам. Основные проблемы с которыми им приходиться сталкиваться это поддержка различных языков (CJK, составные слова и тд) и огромная масштабируемость за разумную цену. HathiTrust поиск индексирует 6.5 миллионов отсканированных книг (244 терабайта картинок, 6 терабайтов распознанного текста) при использовании ограниченных вычислительных ресурсов.

Биоинформатика (проект Metarep)

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

Новые возможности продуктов Apache Lucene и Solr

Также было несколько презентаций по поводу новых возможностей проектов Apache Lucene и Apache Solr в ближайших релизах, таких как:

Solr Cloud

функциональность серьезно упрощает создание, конфигурирование и поддержку распределенного кластера. В ядре решения используется проект Apache Zookeeper, который подтвердил свою надежность в проектах типа HBase и множестве решений компании Yahoo.

Географический поиск (Solr Spatial Search)

Не секрет, что в последнее время обрели популярность всяческие гео-сервисы (location based services). Зачастую им нужно решать задачи поиска различных обьектов не только по фактору удаленности от пользователя, но и применять обычные фильтры — полнотекстовый, по категории или тегу, и тд. Проект Apache Solr предоставляет теперь и такую возможность из коробки (это можно было реализовать и раньше, но каждый придумывал свой собственный велосипед). Проект Lucene/Solr используют такие крупные игроки в данной отрасли как Yelp.com и YP.com

Мгновенный поиск (Realtime search)

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

Гибкий механизм индексирования в Lucene (Flexible Indexing)

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

Также были сессии посвященные следующим вопросам и смежным технологиям:
  • использованию Apache Solr как NoSQL хранилища
  • проект посвященный практическим масштабируемым реализациям алгоритмов машинного обучения Apache Mahout (этот проект в продакшине применяется почтовой службой Yahoo для фильтрации спама)
  • интеграции поискового робота Apache Nutch
  • мигрирования корпоративного поиска с платформы Fast на Apache Solr
  • и многие другие


Архив с докладами конференции находится здесь
Tags:lucene revolutionapachelucenesolrsearchsearch engineirinformation retrievalnutchmahout
Hubs: Search engines
+35
3.5k 40
Comments 10
Popular right now
CTO/ Технический руководитель/ Lead
from 400,000 to 500,000 ₽JuicyScoreМоскваRemote job
Senior PHP Developer (100% REMOTE)
from 3,000 $HyprrRemote job
Backend-разработчик Python/Django
from 50,000 to 180,000 ₽InelsoRemote job
Senior QA Engineer in Automation
from 3,500 $WhiskRemote job
Web-разработчик (Backend)
from 50,000 to 95,000 ₽Condé NastRemote job
Top of the last 24 hours