Część 1: Konfigurowanie pojedynczego węzła
Dzisiaj elektroniczne przechowywanie dokumentów lub danych na urządzeniu pamięci jest zarówno szybkie, jak i łatwe, jest też porównywalnie tanie. W użyciu jest odniesienie do nazwy pliku, które ma opisać, o czym jest dokument. Alternatywnie dane są przechowywane w systemie zarządzania bazą danych (DBMS), takim jak PostgreSQL, Mariadb lub MongoDB, aby wymienić kilka opcji. Kilka mediów pamięci jest lokalnie lub zdalnie podłączonych do komputera, takich jak USB Stick, wewnętrzny lub zewnętrzny dysk twardy, przechowywanie sieciowe (NAS), pamięć chmur lub GPU/Flash, jak w NVIDIA V100 [10].
Natomiast proces odwrotnego, znalezienie odpowiednich dokumentów w zbiorze dokumentów, jest dość złożone. Wymaga to głównie wykrywania formatu pliku bez usterki, indeksowania dokumentu i wyodrębnienia kluczowych pojęć (klasyfikacja dokumentów). W tym miejscu pojawia się framework Apache Solr. Oferuje praktyczny interfejs do wykonania wymienionych kroków - budowanie indeksu dokumentów, akceptując zapytania, przeprowadzanie faktycznego wyszukiwania i zwracanie wyniku wyszukiwania. Apache Solr stanowi zatem rdzeń skutecznych badań nad bazą danych lub silosu dokumentu.
W tym artykule dowiesz się, jak działa Apache Solr, jak skonfigurować pojedynczy węzeł, indeksować dokumenty, wyszukiwać i pobrać wynik.
Artykuły uzupełniające opierają się na tym, a w nich omawiamy inne, bardziej szczegółowe przypadki użycia, takie jak integracja PostgreSQL DBMS jako źródło danych lub równoważenie obciążenia w wielu węzłach.
O projekcie Apache Solr
Apache Solr to framework wyszukiwarki oparty na potężnym serwerze indeksu wyszukiwania Lucene [2]. Napisany w Javie, jest prowadzony pod parasolem Apache Software Foundation (ASF) [6]. Jest swobodnie dostępny na podstawie licencji Apache 2.
Temat „Znowu znajdź dokumenty i dane” odgrywa bardzo ważną rolę w świecie oprogramowania, a wielu programistów intensywnie zajmuje się tym. Witryna AwesomeOpensource [4] zawiera ponad 150 projektów open source w wyszukiwarkach. Na początku 2021 r. Elasticsearch [8] i Apache Solr/Lucene to dwa najlepsze psy, jeśli chodzi o wyszukiwanie większych zestawów danych. Opracowanie wyszukiwarki wymaga dużej wiedzy, Frank robi to z biblioteką Advas Advase Search z Python [3] od 2002 roku.
Konfigurowanie Apache Solr:
Instalacja i działanie Apache Solr nie są skomplikowane, jest to po prostu cała seria kroków, które należy wykonać. Pozwól na około 1 godzinę wyniku pierwszego zapytania danych. Co więcej, Apache Solr to nie tylko hobby, ale jest również używany w profesjonalnym środowisku. Dlatego wybrane środowisko systemu operacyjnego jest przeznaczone do długoterminowego użytku.
Jako środowisko podstawowe tego artykułu używamy Debian GNU/Linux 11, który jest nadchodzącym wydaniem Debiana (od początku 2021 r.) I oczekuje się, że będzie dostępna w połowie 20121 r. W tym samouczku spodziewamy się, że już go zainstalowałeś,-jako system natywny, w maszynie wirtualnej, takiej jak VirtualBox lub kontener AWS.
Oprócz podstawowych komponentów potrzebujesz następujących pakietów oprogramowania do zainstalowania w systemie:
Pakiety te są standardowymi komponentami Debian GNU/Linux. Jeśli nie zostanie jeszcze zainstalowany, możesz poinstalować je za jednym razem jako użytkownik z prawami administracyjnymi, na przykład root lub przez sudo, pokazane w następujący sposób:
# apt-get install curl default-java libcommons-cli-java libxerces2-java libtika-java
Po przygotowaniu środowiska, drugi krok jest instalacją Apache Solr. Na razie Apache Solr nie jest dostępny jako zwykły pakiet Debian. Dlatego konieczne jest odzyskanie Apache Solr 8.8 Z sekcji pobierania strony internetowej projektu [9]. Użyj poniższego polecenia WGET, aby przechowywać je w katalogu /TMP swojego systemu:
$ wget -o/tmp https: // pobieranie.Apache.Org/Lucene/Solr/8.8.0/solr-8.8.0.TGZ
Przełącznik -o skróca -output -dokument i sprawia, że wgget przechowuje odzyskaną smołę.plik GZ w danym katalogu. Archiwum ma rozmiar około 190 m. Następnie rozpakuj archiwum w katalogu /opt za pomocą TAR. W rezultacie znajdziesz dwa podkatalog - /opt /solr i /opt /solr -8.8.0, podczas gdy /opt /solr jest ustawiony jako symboliczny link do tego drugiego. Apache Solr jest wyposażony w skrypt konfiguracyjny, który wykonujesz następny, jest następujący:
# /opt /solr-8.8.0/bin/install_solr_service.cii
Powoduje to, że utworzenie usługi Solr użytkownika Linux działa w usłudze Solr, a jego katalog domowy pod /var /solr ustanawia usługę Solr, dodano z odpowiednimi węzłami i uruchamia usługę Solr na porcie 8983. To są wartości domyślne. Jeśli jesteś z nich niezadowolony, możesz je zmodyfikować podczas instalacji, a nawet opatalnicze, skrypt instalacyjny akceptuje odpowiednie przełączniki do regulacji konfiguracji. Zalecamy przyjrzenie się dokumentacji Apache Solr dotyczącej tych parametrów.
Oprogramowanie Solr jest zorganizowane w następujących katalogach:
Bardziej szczegółowo możesz przeczytać o tych katalogach w dokumentacji Apache Solr [12].
Zarządzanie Apache Solr:
Apache Solr działa jako usługa w tle. Możesz uruchomić go na dwa sposoby, używając SystemCtl (pierwsza linia) jako użytkownika z uprawnieniami administracyjnymi lub bezpośrednio z katalogu Solr (druga linia). Poniżej wymieniamy oba polecenia terminali:
# Systemctl start solr
$ solr/bin/solr start
Zatrzymanie Apache Solr odbywa się podobnie:
# Systemctl Stop Solr
$ solr/bin/solr stop
Taka sama droga do ponownego uruchomienia usługi Apache Solr:
# Systemctl restart solr
$ solr/bin/solr restart
Ponadto status procesu Apache Solr można wyświetlić w następujący sposób:
# SystemCtl Status Solr
Status $ solr/bin/solr
Wyjście zawiera listę uruchomionego pliku usługi, zarówno odpowiednich wiadomości znaczników czasu, jak i dziennika. Poniższy rysunek pokazuje, że usługa Apache Solr została uruchomiona na porcie 8983 z procesem 632. Proces z powodzeniem działa przez 38 minut.
Aby sprawdzić, czy proces Apache Solr jest aktywny, możesz również sprawdzić krzyżowo za pomocą polecenia PS w połączeniu z GREP. Ogranicza to wyjście PS do wszystkich obecnie aktywnych procesów Apache Solr.
# PS AX | Grep -kolorowy solr
Poniższy rysunek pokazuje to dla jednego procesu. Widzisz połączenie Java, które towarzyszy lista parametrów, na przykład wykorzystanie pamięci (512 mln) do słuchania na 8983 zapytań, 7983 dla żądań zatrzymania i rodzaj połączenia (HTTP).
Dodawanie użytkowników:
Procesy Apache Solr działają z określonym użytkownikiem o nazwie Solr. Ten użytkownik jest pomocny w zarządzaniu procesami Solr, przesyłaniem danych i wysyłania żądań. Po konfiguracji Użytkownik Solr nie ma hasła i oczekuje się, że będzie miało zalogować się, aby kontynuować. Ustaw hasło dla użytkownika Solr, takiego jak root użytkownika, jest pokazane w następujący sposób:
# passwd solr
Administracja Solr:
Zarządzanie Apache Solr odbywa się za pomocą pulpitu rozdzielczego Solr. Jest to dostępne za pośrednictwem przeglądarki internetowej z http: // localhost: 8983/solr. Poniższy rysunek pokazuje główny widok.
Po lewej stronie widać główne menu, które prowadzi do podsekcji w celu rejestrowania, podawania rdzeni Solr, konfiguracji Java i informacji o stanie. Wybierz żądany rdzeń za pomocą pola wyboru poniżej menu. Po prawej stronie menu wyświetlane są odpowiednie informacje. Wpis menu pulpitu Pokazuje dalsze szczegóły dotyczące procesu Apache Solr, a także bieżące użycie obciążenia i pamięci.
Pamiętaj, że zawartość pulpitu deski rozdzielczej zmienia się w zależności od liczby rdzeni Solr i indeksowanych dokumentów. Zmiany wpływają zarówno na elementy menu, jak i odpowiednie informacje, które są widoczne po prawej stronie.
Zrozumienie, jak działają wyszukiwarki:
Mówiąc po prostu, wyszukiwarki analizują dokumenty, kategoryzują je i pozwalają na wyszukiwanie na podstawie ich kategoryzacji. Zasadniczo proces składa się z trzech etapów, które są określane jako pełzanie, indeksowanie i ranking [13].
Pełzanie jest pierwszym etapem i opisuje proces, w którym gromadzona jest nowa i zaktualizowana treść. Wyszukiwarka używa robotów znanych również jako pająki lub pełzanie, stąd termin pełzający, aby przejść przez dostępne dokumenty.
Drugi etap nazywa się indeksowanie. Wcześniej zebrana zawartość można przeszukiwać poprzez przekształcenie oryginalnych dokumentów w format, który rozumie wyszukiwarka. Słowa kluczowe i koncepcje są wyodrębnione i przechowywane w (masywnych) bazach danych.
Trzeci etap nazywa się zaszeregowanie i opisuje proces sortowania wyników wyszukiwania zgodnie z ich znaczeniem z zapytaniem. Powszechne jest wyświetlanie wyników w kolejności malejącej, aby wynik, który ma najwyższe znaczenie dla zapytania wyszukiwarki.
Apache Solr działa podobnie jak wcześniej opisany proces trzyetapowy. Podobnie jak popularna wyszukiwarka Google, Apache Solr korzysta z sekwencji gromadzenia, przechowywania i indeksowania dokumentów z różnych źródeł i udostępnia je/wyszukiwanie w prawie rzeczywistym.
Apache Solr używa różnych sposobów indeksowania dokumentów, w tym następujących [14]:
Prowadzący zapytanie jest używany w Apache Solr po wysłaniu żądania wyszukiwania. Prowadzący zapytanie analizuje podane zapytanie na podstawie tej samej koncepcji obsługi indeksu, aby dopasować zapytanie i wcześniej indeksowane dokumenty. Mecze są uszeregowane według ich stosowności lub znaczenia. Krótki przykład zapytania pokazano poniżej.
Przesyłanie dokumentów:
Ze względu na prostotę używamy przykładowego zestawu danych dla następującego przykładu, który jest już dostarczany przez Apache Solr. Przesyłanie dokumentów odbywa się jako usługi użytkownika. Krok 1 to tworzenie rdzenia o nazwie TechProducts (dla wielu elementów technologicznych).
$ solr/bin/solr tworzyć -c
Wszystko jest w porządku, jeśli zobaczysz wiadomość „Utworzono nowe rdzeń”. Krok 2 to dodawanie danych (dane XML z ExampleDOC) do wcześniej utworzonych podstawowych produktów technicznych. W użyciu jest post narzędzi, który jest sparametryzowany przez -c (nazwa rdzenia) i dokumenty do przesłania.
$ solr/bin/post -c techProducts solr/example/exampledocs/*.XML
Spowoduje to wyniki pokazane poniżej i będzie zawierać całe połączenie plus 14 dokumentów, które zostały indeksowane.
Również pulpit nawigacyjny pokazuje zmiany. Nowy wpis o nazwie TechProducts jest widoczny w menu rozwijanym po lewej stronie, a liczba odpowiednich dokumentów zmieniła się po prawej stronie. Niestety szczegółowy widok surowych zestawów danych nie jest możliwy.
W przypadku usunięcia rdzenia/kolekcji użyj następującego polecenia:
$ solr/bin/solr delete -c TechProducts
Zapytanie danych:
Apache Solr oferuje dwa interfejsy do zapytania o dane: za pośrednictwem pulpitu nawigacyjnego i linii poleceń. Wyjaśnimy obie metody poniżej.
Wysyłanie zapytań za pośrednictwem pulpitu rozdzielczego Solr odbywa się w następujący sposób:
Linia polecenia akceptuje to samo zapytanie, co na desce rozdzielczej. Różnica polega na tym, że musisz znać nazwę pól zapytania. Aby wysłać to samo zapytanie, jak powyżej, musisz uruchomić następujące polecenie w terminalu:
$ curl
http: // localhost: 8983/solr/techProducts/Query?q = ”manu”: „Belkin
Wyjście jest w formacie JSON, jak pokazano poniżej. Wynik składa się z nagłówka odpowiedzi i rzeczywistej odpowiedzi. Odpowiedź składa się z dwóch zestawów danych.
Podsumowanie:
Gratulacje! Z powodzeniem osiągnąłeś pierwszy etap. Podstawowa infrastruktura jest ustawiona i nauczyłeś się przesyłać i zapytać dokumenty.
Następny krok obejmie sposób udoskonalenia zapytania, sformułowania bardziej złożonych zapytań i zrozumienia różnych formularzy internetowych dostarczonych przez stronę Apache Solr Query. Omówimy również, jak przetwarzać wyniki wyszukiwania za pomocą różnych formatów wyjściowych, takich jak XML, CSV i JSON.
O Autorach:
Jacqui Kabeta jest ekologiem, zapalonym badaczem, trenerem i mentorem. W kilku krajach afrykańskich pracowała w środowisku IT i organizacji pozarządowych.
Frank Hofmann jest programistą IT, trenerem i autorem i woli pracować z Berlina, Genewy i Kapsztadu. Współautor książki zarządzania pakietami Debian dostępna w DPMB.org