LinkedIn открыл код поисковых технологий IndexTankСоциальная сеть LinkedIn анонсировала открытие кода ряда технологий, полученных после покупки компании IndexTank, занимающейся развитием облачного сервиса, берущего на себя заботу по организации поиска на web-сайтах. После открытия кода появилась возможность создания аналогичных сервисов на своих мощностях. В частности, под лицензией Apache открыт код поискового движка indextank-engine (IndexEngine), используемого для индексации данных, и пакета indextank-service, в который входят компоненты для организации поискового сервиса. Из ресурсов, использующих поисковые технологии IndexTank, можно отметить Reddit. Основные компоненты IndexTank: IndexEngine - написанная на языке Java система поиска и индексации полнотекстовых данных, работающая в режиме реального времени и нацеленная на разделение информации о релевантности от содержимого индексируемых документов (в социальных сетях релевантность больше зависит от реакции пользователей, которая проявляется в виде рейтингов, обмена ссылками и различных голосований, "+1", "like" и т.п.). Из дополнительных возможностей, поддерживаемых движком отмечаются средства для вывода элементов в топ (например, для показа контекстной рекламы), разделение контента на категории и поиск по категориям, вывод контекстных подсказок, подключение собственных функций сортировки, поиск с учетом местоположения пользователя, голосования, рейтинг, комментарии, автодополнение вводимых запросов и предложения релевантных похожих запросов. REST JSON API для взаимодействия внешних приложений (сайтов) с поисковым сервисом. Реализация API написана на языке Python с использованием фреймворка Django. API позволяет организовать работу многопользовательского сервиса, в котором для каждого пользователя поддерживается свой набор поисковых индексов. Доступны функции аутентификации пользователей и взаимодействия с IndexEngine, например, индексации данных, управления индексами, выполнение операций поиска в индексах. Клиентские библиотеки для поддержки API доступны для языков Java, Python, .NET, Ruby и PHP, реализация поддержки для других языков не представляет сложности, так как запросы можно отправлять через простой протокол, работающий поверх HTTP; Nebulizer - фреймворк для обеспечения работы на стороне сервера и управления многопользовательским поисковым сервисом, который может обеспечить работу с неограниченным числом поисковых индексов, развёрнутых поверх SaaS-систем (инфраструктура как сервис). Nebulizer позволяет создавать и обслуживать виртуальные окружения по мере необходимости, перемещая индексы при увеличении потребления ресурсов и заботясь об обеспечении максимальной эффективности обработки индексов; Backoffice - приложение на базе Django с реализацией административного web-интерфейса; Storefront - приложение на базе Django c реализацией интерфейса для регистрации новых пользователей сервиса и создания новых аккаунтов.
Распечатано с HostDB.ru.
|