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

    В начале октября мне удалось побывать на конференции 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
    • и многие другие


    Архив с докладами конференции находится здесь
    Поделиться публикацией

    Похожие публикации

    Комментарии 10

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

      Думаю, такое решение дало бы возможности для «заоблачных» проектов, которые витают в головах разработчиков.
      • НЛО прилетело и опубликовало эту надпись здесь
          +1
          это реклама лючене?:-)
          расскажите пожалуйста вообще о технологии, в чем преимущества перед другими (тем же сфинксом), ну и вообще как то интересней было бы почитать о самой технологии, чем о тех кто ее использует
            –1
            лючене? люцене? люсьене? лусене? :-)
              0
              люсин
              +1
              Согласен, тема действительно интересная, тоже с радостью почитал бы про эти разработки подробнее. Тем более после подогрева интереса указанием проектов, в которых это ПО используется.
                +2
                Мне не приходилось работать со Сфинксом, но Солр порадовал тем, что:
                можно обновлять индекс по документам отдельно (вроде как даже и по полям), без необходимости полной реиндиксации;
                также facets идут прямо из коробки;
                ключи могут быть произвольными, хоть строковыми, хоть числами;
                Солр умеет индексировать .DOC, .PDF и наверное еще что-то.

                Вобщем, продукт интересен к рассмотрению.
                  0
                  Согласен, интересные очень продукты, спасибо что автор поста поднял тему, хотя пост конечно и не очень структурированный получился :)

                  По поводу обнародования разработок Twitter: LinkedIn-вские проекты, например, уже относительно давно доступны, как и некоторые другие. Описание есть в книге Lucene in Action:

                  Lucene powers LinkedIn’s searching. In this chapter we’ll see two powerful
                  extensions to Lucene developed and used at LinkedIn. The first, Bobo Browse
                  (available as open source at sna-projects.com/bobo) provides faceting information
                  for each search. Zoie, the second extension (available as open source at
                  sna-projects.com/zoie), is a real-time search system built on top of Lucene.
                    0
                    вроде как даже и по полям

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

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

                  Самое читаемое