Interested Article - Lucene
- 2021-02-01
- 1
Lucene — свободная библиотека для высокопроизводительного полнотекстового поиска фонда Apache , используемая в качестве основы в двух самых популярных по состоянию на середину 2010-х годов тиражируемых поисковых системах — Elasticsearch и Solr . Написана на Java .
Разработана ( англ. ) в 1999 году, изначально была выложена автором на SourceForge.net . В 2001 году передана в фонд Apache, где вначале развивалась в рамках проекта Jakarta , и перешла в 2005 году в статус проекта верхнего уровня фонда. В рамках проекта верхнего уровня Lucene породила ряд подпроектов, ставших самостоятельными, среди них — Hadoop (инициированный Каттингом и сформировавшим обширную экосистему продуктов), Nutch и Solr (считающийся частью экосистемы Hadoop). Кроме того, библиотека используется в качестве внутреннего механизма в ряде проектов, среди которых YaCy (децентрализованная поисковая система), ( документоориентированная СУБД с поддержкой SQL ), (тиражируемая поисковая система для организаций), DocFetcher ( локальный поисковик ).
Основная функциональная особенность библиотеки — обеспечение масштабируемой и достаточно высокоскоростной индексации (порядка 100 Гбайт в час на сервере массового класса). Создаваемый индекс занимает примерно 20—30 % от размера исходного текста.
Поисковый алгоритм поддерживает ранжированный поиск (лучшие результаты показываются первыми), , реализовано множество различных типов запросов (запрос фразы, запросы с символами подстановки , поиск интервалов и другие), поиск по значениям метаданных (таких как заголовок, автор, текст). Поддерживается поиск по нескольким индексам с возможностью объединения результатов, реализована сортировка результатов поиска по различным полям. Поиск возможен одновременно с процессом обновления индекса. Логическая архитектура библиотеки представляет любой документ как набор текстовых полей, что позволяет ей функционировать вне зависимости от форматов , как только текстовая информация из них может быть получена.
Портирована на многие другие языки программирования: Си (Lucene4c), C++ (CLucene), Node.js , Go , Delphi (MUTIS), Perl (PLucene), Ruby (Ferret и RubyLucene), PHP (в рамках фреймворка Zend ), Lisp (Montezuma), C# (Lucene.Net), Python (PyLucene).
Литература
- Erik Hatcher and Otis Gospodnetic. Lucene in Action. — 2nd. — Stamford: Manning, 2010. — P. 528. — ISBN 978-1-933988-17-7 .
Примечания
- . Дата обращения: 27 сентября 2023. 27 сентября 2023 года.
Ссылки
- 2021-02-01
- 1