Wikipedysta:Maleed/brudnopis-lucene: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 19: | Linia 19: | ||
}} |
}} |
||
'''Apache Lucene''' – [[Otwarte oprogramowanie|otwartoźródłowa]] [[biblioteka programistyczna]] oferująca funkcje [[Wyszukiwanie informacji|wyszukiwania informacji]] (ang. ''information retrieval'')<ref name="lucene_in_action">McCandless, Michael, Erik Hatcher, i Otis Gospodnetic. Lucene in action |
'''Apache Lucene''' – [[Otwarte oprogramowanie|otwartoźródłowa]] [[biblioteka programistyczna]] oferująca funkcje [[Wyszukiwanie informacji|wyszukiwania informacji]] (ang. ''information retrieval'')<ref name="lucene_in_action">McCandless, Michael, Erik Hatcher, i Otis Gospodnetic. [https://livebook.manning.com/book/lucene-in-action-second-edition Lucene in action, second edition. Covers Apache Lucene 3.0], Manning Publications Co., 2010.</ref>. Pozwala zarówno na zbieranie jak i indeksowania oraz wyszukiwania tekstu, co umożliwia stosunkowo proste dodanie funkcji wyszukiwania tekstu do istniejących serwisów jak i stworzenie serwisów wyszukiwania informacji (w tym [[Wyszukiwarka internetowa|wyszukiwarek internetowych]]). Jest rozwijana przez [[Apache Software Foundation]] i wydana na [[Licencja oprogramowania|licencji]] [[Apache License|Apache Software License]]<ref name="lucene4">{{cytuj książkę | imię = Andrzej | nazwisko = Białecki | imię2 = Robert | nazwisko2 = Muir | imię3 = Grant | nazwisko3 = Ingersoll | tytuł = Apache lucene 4 | tytuł tomu = SIGIR 2012 workshop on open source information retrieval | rok = 2012 | strony = 17 | język = en | url = https://pdfs.semanticscholar.org/2795/d9d165607b5ad6d8b9718373b82e55f41606.pdf}} </ref>. |
||
Biblioteka Lucene pierwotnie była stworzona w języku [[Java]] i oferowała [[Interfejs programowania aplikacji|API]] z poziomu Javy (stąd pozwalała na integrację z aplikacjami Javowymi). Obecnie istnieje zarówno szereg tzw. „[[Wrapper|wrapperów]]” dla innych języków, m.in. dla [[Python|Pythona]] (projekt ''PyLucene''<ref>{{Cytuj |tytuł = Apache Lucene - Welcome to PyLucene |data dostępu = 2019-10-23 |opublikowany = lucene.apache.org |url = http://lucene.apache.org/pylucene/}}</ref> – część projektu Lucene), dla [[Perl]]<nowiki/>a (projekt ''plucene''<ref>{{Cytuj |tytuł = Plucene - A Perl port of the Lucene search engine - metacpan.org |data dostępu = 2019-10-23 |opublikowany = metacpan.org |url = https://metacpan.org/pod/Plucene}}</ref>) czy dla jęz. [[Ruby (język programowania)|Ruby]] (projekt ''Lucene.rb''<ref>{{Cytuj |autor = Andreas Ronge |tytuł = A JRuby wrapper for the Lucene Document Database. Contribute to andreasronge/lucene development by creating an account on GitHub |data = 2018-11-15 |data dostępu = 2019-10-23 |url = https://github.com/andreasronge/lucene}}</ref>) oraz tzw. „[[Port (oprogramowanie)|portów]]” – wersji stworzonych niezależnie od pierwszej implementacji w innych językach programowania a kompatybilnych z nią<ref group="uwaga" name="uwaga_index">W przypadku Lucene'a „kompatybilność” oznacza możliwość odczytu i zapisu tzw. [[Indeks (bazy danych)|indeksu]] Lucene'a.</ref> (należą do nich m.in. ''Clucene''<ref>{{Cytuj |tytuł = CLucene - lightning fast C++ search engine |data dostępu = 2019-10-23 |opublikowany = clucene.sourceforge.net |url = http://clucene.sourceforge.net/}}</ref> napisany w jęz. [[C++]] oraz pucene<ref>{{Cytuj |autor = |tytuł = Pucene / Asapo |data = |data dostępu = 2019-10-23 |opublikowany = asapo.at |url = https://asapo.at/projects/pucene}}</ref> napisany w jęz. [[PHP]]). |
Biblioteka Lucene pierwotnie była stworzona w języku [[Java]] i oferowała [[Interfejs programowania aplikacji|API]] z poziomu Javy (stąd pozwalała na integrację z aplikacjami Javowymi). Obecnie istnieje zarówno szereg tzw. „[[Wrapper|wrapperów]]” dla innych języków, m.in. dla [[Python|Pythona]] (projekt ''PyLucene''<ref>{{Cytuj |tytuł = Apache Lucene - Welcome to PyLucene |data dostępu = 2019-10-23 |opublikowany = lucene.apache.org |url = http://lucene.apache.org/pylucene/}}</ref> – część projektu Lucene), dla [[Perl]]<nowiki/>a (projekt ''plucene''<ref>{{Cytuj |tytuł = Plucene - A Perl port of the Lucene search engine - metacpan.org |data dostępu = 2019-10-23 |opublikowany = metacpan.org |url = https://metacpan.org/pod/Plucene}}</ref>) czy dla jęz. [[Ruby (język programowania)|Ruby]] (projekt ''Lucene.rb''<ref>{{Cytuj |autor = Andreas Ronge |tytuł = A JRuby wrapper for the Lucene Document Database. Contribute to andreasronge/lucene development by creating an account on GitHub |data = 2018-11-15 |data dostępu = 2019-10-23 |url = https://github.com/andreasronge/lucene}}</ref>) oraz tzw. „[[Port (oprogramowanie)|portów]]” – wersji stworzonych niezależnie od pierwszej implementacji w innych językach programowania a kompatybilnych z nią<ref group="uwaga" name="uwaga_index">W przypadku Lucene'a „kompatybilność” oznacza możliwość odczytu i zapisu tzw. [[Indeks (bazy danych)|indeksu]] Lucene'a.</ref> (należą do nich m.in. ''Clucene''<ref>{{Cytuj |tytuł = CLucene - lightning fast C++ search engine |data dostępu = 2019-10-23 |opublikowany = clucene.sourceforge.net |url = http://clucene.sourceforge.net/}}</ref> napisany w jęz. [[C++]] oraz pucene<ref>{{Cytuj |autor = |tytuł = Pucene / Asapo |data = |data dostępu = 2019-10-23 |opublikowany = asapo.at |url = https://asapo.at/projects/pucene}}</ref> napisany w jęz. [[PHP]]). |
Wersja z 11:54, 5 gru 2019
![]() Logo programu | |
Autor | Apache Software Foundation |
---|---|
Pierwsze wydanie | 2000 |
Aktualna wersja stabilna | 8.3.0 – 2 listopada 2019; ponad 4 lata temu[1] |
Język programowania | Java |
System operacyjny | Wieloplatformowy |
Rodzaj | biblioteka programistyczna (indeksowanie i wyszukiwanie danych tekstowych) |
Licencja | Apache License |
Strona internetowa |
Apache Lucene – otwartoźródłowa biblioteka programistyczna oferująca funkcje wyszukiwania informacji (ang. information retrieval)[2]. Pozwala zarówno na zbieranie jak i indeksowania oraz wyszukiwania tekstu, co umożliwia stosunkowo proste dodanie funkcji wyszukiwania tekstu do istniejących serwisów jak i stworzenie serwisów wyszukiwania informacji (w tym wyszukiwarek internetowych). Jest rozwijana przez Apache Software Foundation i wydana na licencji Apache Software License[3].
Biblioteka Lucene pierwotnie była stworzona w języku Java i oferowała API z poziomu Javy (stąd pozwalała na integrację z aplikacjami Javowymi). Obecnie istnieje zarówno szereg tzw. „wrapperów” dla innych języków, m.in. dla Pythona (projekt PyLucene[4] – część projektu Lucene), dla Perla (projekt plucene[5]) czy dla jęz. Ruby (projekt Lucene.rb[6]) oraz tzw. „portów” – wersji stworzonych niezależnie od pierwszej implementacji w innych językach programowania a kompatybilnych z nią[a] (należą do nich m.in. Clucene[7] napisany w jęz. C++ oraz pucene[8] napisany w jęz. PHP).
Częścią projektu jest narzędzie Sorl, które pozwala zbudować wyszukiwarki bez wykorzystania API z języków programowania[9].
Historia
Projekt Lucene został zapoczątkowany przez Douga Cuttinga w roku 1997 jako własny projekt (który – jak przyznaje autor – miał na celu samodoskonalenie się w jęz. Java[2][3]). Projekt został opublikowany jako otwarte oprogramowanie w roku 2000 (wersja 0.01)[10]. Następnie, w połowie roku 2001, biblioteka została przekazana Apache Software Foundation (ASF)[3]. Pierwszym oficjalnym wydaniem ASF była wersja 1.2, opublikowana w październiku 2001[10]. Od tego czasu wydano kilka dużych wersji (wer. 2 – w roku 2006, wer. 3 – 2010, wer. 4 – 2012, wer. 5 – 2015, wer. 6 – 2016, wer. 7 – 2017 i wer. 8 – 2019[2][10]). Obecnie biblioteka Lucene (napisana w Javie) jest jedną z części projektu Lucene i jest nazywana Lucene-core. Innymi częściami projektu Lucene są, wspomniane wyżej, narzędzia Apache Solr oraz PyLucene.
Cechy i działanie
TODO: przydałoby się trochę technicznych szczegółów (indeks itp.). No i może 2-3 zdania o API.
Chociaż biblioteka Lucene może być stosowana w wielu rodzajach aplikacji wymagających pełnego indeksowania i wyszukiwania tekstu, jest znana ze swojej użyteczności w budowaniu wyszukiwarek internetowych jak również systemów lokalnego wyszukiwania pojedynczej witryny[2][11]. Lucene zawiera funkcje wyszukiwania rozmytego, które mogą być realizowane z użyciem różnych technik, m.in. obliczanie tzw. odległości Levenshteina między terminami[3][12].
Biblioteka Lucene została również wykorzystana do wdrożenia systemów rekomendacji[13]. Na przykład klasa „MoreLikeThis” Lucene może generować rekomendacje dotyczące podobnych dokumentów. W porównaniu pojęcia opartego na wektorze podejścia „MoreLikeThis” z miarami podobieństwa dokumentów opartymi na cytowaniu, takimi jak analiza bliskości cytowań i analiza bliskości cytowań, podejście Lucene wyróżniało się w zalecaniu dokumentów o bardzo podobnych cechach konstrukcyjnych i wąskiej pokrewieństwa[14]. Z kolei środki podobieństwa dokumentów oparte na cytowaniu były bardziej odpowiednie do rekomendowania dokumentów o szerszym zakresie[14], co oznacza, że podejścia oparte na cytowaniu mogą być bardziej odpowiednie do generowania nieoczekiwanych rekomendacji, o ile dokumenty, które mają być rekomendowane, zawierają cytaty w tekście.
Projekty używające biblioteki Lucene
Sama Lucene jest tylko biblioteką indeksowania i wyszukiwania i nie zawiera funkcji indeksowania, analizy HTML czy innych funkcji wykraczających poza podstawowe możliwości. Stąd można wskazać wiele serwisów i aplikacji (w tym innych projektów otwartoźródłowych), które używają Lucene. Należą do nich m.in.:
- Apache Nutch – narzędzie do indeksowania stron internetowych i parsowania HTML (ang. Web crawling)[15][16]
- CiteSeerX – serwis indeksujący i wyszukujący prace naukowe[16]
- DocFetcher – wieloplatformowa aplikacja do wyszukiwania informacji zgromadzonych na komputerze lokalnym[17]
- Eclipse – wieloplatformowe IDE (Lucene użyte jako silnik przeszukiwania dokumentacji)[16]
- Elasticsearch – serwer indeksowania i wyszukiwania korporacyjnego (Lucene jest tu podstawową biblioteką usługi indeksowania/wyszukiwania)[18]
- JIRA – narzędzie do zarządzania zadaniami i błędami zgłaszanymi w projektach informatycznych (Lucene tu jest wyszukiwarką błędów na podstawie ich opisu)[16]
Uwagi
Przypisy
- ↑ Apache Lucene - Welcome to Apache Lucene [online], lucene.apache.org [dostęp 2019-12-03] .
- ↑ a b c d McCandless, Michael, Erik Hatcher, i Otis Gospodnetic. Lucene in action, second edition. Covers Apache Lucene 3.0, Manning Publications Co., 2010.
- ↑ a b c d Andrzej Białecki, Robert Muir, Grant Ingersoll: Apache lucene 4. T. SIGIR 2012 workshop on open source information retrieval. 2012, s. 17. (ang.).
- ↑ Apache Lucene - Welcome to PyLucene [online], lucene.apache.org [dostęp 2019-10-23] .
- ↑ Plucene - A Perl port of the Lucene search engine - metacpan.org [online], metacpan.org [dostęp 2019-10-23] .
- ↑ Andreas Ronge , A JRuby wrapper for the Lucene Document Database. Contribute to andreasronge/lucene development by creating an account on GitHub [online], 15 listopada 2018 [dostęp 2019-10-23] .
- ↑ CLucene - lightning fast C++ search engine [online], clucene.sourceforge.net [dostęp 2019-10-23] .
- ↑ Pucene / Asapo [online], asapo.at [dostęp 2019-10-23] .
- ↑ Apache Solr - [online], lucene.apache.org [dostęp 2019-10-23] .
- ↑ a b c Dziennik zmian proj. Lucene (ang. Lucene Change Log) [online], lucene.apache.org [dostęp 2019-12-05] .
- ↑ Ahmed Salama, Ahmed Samih, Amr Ramadan, i Karim M. Yousef. GNU/Linux Semantic Storage System
- ↑ https://lucene.apache.org/core/2_9_4/queryparsersyntax.html
- ↑ J. Beel, S. Langer, and B. Gipp, “The Architecture and Datasets of Docear’s Research Paper Recommender System,” in Proceedings of the 3rd International Workshop on Mining Scientific Publications (WOSP 2014) at the ACM/IEEE Joint Conference on Digital Libraries (JCDL 2014), London, UK, 2014
- ↑ a b M. Schwarzer, M. Schubotz, N. Meuschke, C. Breitinger, V. Markl, and B. Gipp, Evaluating Link-based Recommendations for Wikipedia, Proceedings of the 16th ACM/IEEE-CS Joint Conference on Digital Libraries (JCDL), New York, NY, USA, 2016, str. 191-200
- ↑ Zakir Laliwala i Abdulbasit Shaikh, Web Crawling and Data Mining with Apache Nutch, Packt Publishing, 2013.
- ↑ a b c d PoweredBy - Apache Lucene (Java) - Apache Software Foundation [online], cwiki.apache.org [dostęp 2019-12-04] .
- ↑ DocFetcher - Fast Document Search [online], docfetcher.sourceforge.net [dostęp 2019-12-03] .
- ↑ Marcin Bajer , Building an IoT Data Hub with Elasticsearch, Logstash and Kibana, „5th International Conference on Future Internet of Things and Cloud / Workshops”, 2017 .