Apache Solr

Apache Solr Konfiguracja węzła

Apache Solr Konfiguracja węzła

Część 1: Konfiguracja pojedynczego węzła

Dziś elektroniczne przechowywanie dokumentów lub danych na nośniku danych jest szybkie i łatwe, a także 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 bazami danych (DBMS), takim jak PostgreSQL, MariaDB lub MongoDB, aby wymienić tylko kilka opcji. Kilka nośników pamięci jest podłączonych lokalnie lub zdalnie do komputera, takich jak pamięć USB, wewnętrzny lub zewnętrzny dysk twardy, Network Attached Storage (NAS), Cloud Storage lub GPU/Flash, jak w Nvidia V100 [10].

Natomiast proces odwrotny, czyli znalezienie odpowiednich dokumentów w zbiorze dokumentów, jest dość złożony. Wymaga przede wszystkim bezbłędnego wykrycia formatu pliku, zindeksowania dokumentu i wyodrębnienia kluczowych pojęć (klasyfikacja dokumentu). Tutaj wkracza framework Apache Solr. Oferuje praktyczny interfejs do wykonywania wymienionych kroków - budowanie indeksu dokumentu, akceptowanie zapytań wyszukiwania, przeprowadzanie rzeczywistego wyszukiwania i zwracanie wyników wyszukiwania. Apache Solr stanowi zatem rdzeń efektywnego badania bazy danych lub silosu dokumentów.

W tym artykule dowiesz się, jak działa Apache Solr, jak skonfigurować pojedynczy węzeł, indeksować dokumenty, wyszukiwać i pobierać wyniki.

Dalsze artykuły opierają się na tym, a w nich omawiamy inne, bardziej specyficzne przypadki użycia, takie jak integracja DBMS PostgreSQL jako źródła danych lub równoważenie obciążenia między wieloma węzłami.

O projekcie Apache Solr

Apache Solr to framework wyszukiwarek oparty na potężnym serwerze indeksowania wyszukiwania Lucene [2]. Napisany w Javie, jest utrzymywany pod patronatem Apache Software Foundation (ASF) [6]. Jest dostępny bezpłatnie na licencji Apache 2.

Temat „Znajdź ponownie dokumenty i dane” odgrywa bardzo ważną rolę w świecie oprogramowania i wielu programistów zajmuje się tym intensywnie. Witryna Awesomeopensource [4] zawiera ponad 150 projektów open-source w wyszukiwarkach. Od początku 2021 r. ElasticSearch [8] i Apache Solr/Lucene to dwa najlepsze psy, jeśli chodzi o wyszukiwanie większych zbiorów danych. Tworzenie wyszukiwarki wymaga dużej wiedzy, Frank robi to z biblioteką AdvaS Advanced Search [3] opartą na Pythonie [3] od 2002 roku.

Konfiguracja Apache Solr:

Instalacja i obsługa Apache Solr nie są skomplikowane, to po prostu cała seria kroków do wykonania przez Ciebie. Poczekaj około 1 godziny na wynik pierwszego zapytania o dane. Co więcej, Apache Solr to nie tylko projekt hobbystyczny, ale także wykorzystywany w środowisku zawodowym. Dlatego wybrane środowisko systemu operacyjnego jest przeznaczone do długotrwałego użytkowania.

Jako środowisko bazowe dla tego artykułu używamy Debiana GNU/Linux 11, który jest nadchodzącym wydaniem Debiana (początek 2021 r.) i ma być dostępny w połowie 2021 r. W tym samouczku spodziewamy się, że już go zainstalowałeś - jako system natywny, na maszynie wirtualnej, takiej jak VirtualBox, lub kontener AWS.

Oprócz podstawowych komponentów do zainstalowania w systemie potrzebne są następujące pakiety oprogramowania:

Te pakiety są standardowymi komponentami Debiana GNU/Linux. Jeśli nie są jeszcze zainstalowane, możesz je doinstalować za jednym razem jako użytkownik z uprawnieniami administracyjnymi, na przykład root lub przez sudo, jak pokazano w następujący sposób:

# apt-get install curl default-java libcommons-cli-java libxerces2-java libtika-java

Po przygotowaniu środowiska, drugim krokiem jest instalacja Apache Solr. Obecnie Apache Solr nie jest dostępny jako zwykły pakiet Debiana. Dlatego wymagane jest pobranie Apache Solr 8.8 z sekcji pobierania na stronie internetowej projektu [9] najpierw. Użyj poniższego polecenia wget, aby zapisać go w katalogu /tmp swojego systemu:

$ wget -O /tmp https://downloads.Apache.org/lucene/solr/8.8.0/solr-8.8.0.tgz

Przełącznik -O skraca -output-document i sprawia, że ​​wget przechowuje pobraną tar.plik gz w podanym katalogu. Archiwum ma rozmiar około 190 mln. Następnie rozpakuj archiwum do katalogu /opt za pomocą tar. W rezultacie znajdziesz dwa podkatalogi - /opt/solr i /opt/solr-8.8.0, podczas gdy /opt/solr jest konfigurowane jako dowiązanie symboliczne do tego ostatniego. Apache Solr zawiera skrypt instalacyjny, który wykonujesz jako następny, wygląda on następująco:

# /opt/solr-8.8.0/bin/install_solr_service.cii

Skutkuje to utworzeniem użytkownika Linuksa solr uruchamianego w usłudze Solr plus jego katalog domowy w /var/solr ustanawia usługę Solr, dodaną z odpowiadającymi jej węzłami i uruchamia usługę Solr na porcie 8983. To są wartości domyślne. Jeśli nie jesteś z nich zadowolony, możesz je zmodyfikować podczas instalacji lub nawet później, ponieważ skrypt instalacyjny akceptuje odpowiednie przełączniki do regulacji ustawień. Polecamy zajrzeć do dokumentacji Apache Solr dotyczącej tych parametrów.

Oprogramowanie Solr zorganizowane jest w następujących katalogach:

Dokładniej o tych katalogach można przeczytać w dokumentacji Apache Solr [12].

Zarządzanie Apache Solr:

Apache Solr działa jako usługa w tle. Możesz go uruchomić na dwa sposoby, używając systemctl (pierwsza linia) jako użytkownik z uprawnieniami administracyjnymi lub bezpośrednio z katalogu Solr (druga linia). Poniżej wymieniamy oba polecenia terminala:

# systemctl start solr
$ solr/bin/solr start

Zatrzymanie Apache Solr odbywa się podobnie:

# systemctl stop solr
$ solr/bin/solr stop

To samo dotyczy restartu usługi Apache Solr:

# systemctl restart solr
$ restart solr/bin/solr

Ponadto status procesu Apache Solr można wyświetlić w następujący sposób:

# systemctl status solr
$ status solr/bin/solr

Dane wyjściowe wyświetlają plik usługi, który został uruchomiony, zarówno odpowiedni znacznik czasu, jak i komunikaty dziennika. Poniższy rysunek pokazuje, że usługa Apache Solr została uruchomiona na porcie 8983 z procesem 632. Proces przebiega pomyślnie 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 aktualnie aktywnych procesów Apache Solr.

# ps topór | grep --kolor solr

Poniższy rysunek pokazuje to dla pojedynczego procesu. Widzisz wywołanie Java, któremu towarzyszy lista parametrów, na przykład użycie pamięci (512M) portów do nasłuchiwania na 8983 dla zapytań, 7983 dla żądań zatrzymania i typ połączenia (http).

Dodawanie użytkowników:

Procesy Apache Solr działają z konkretnym użytkownikiem o nazwie solr. Ten użytkownik jest pomocny w zarządzaniu procesami Solr, przesyłaniu danych i wysyłaniu zapytań. Po skonfigurowaniu użytkownik solr nie ma hasła i oczekuje się, że będzie miał je, aby się zalogować, aby przejść dalej. Ustaw hasło dla użytkownika solr jak user root, jest to pokazane w następujący sposób:

# hasło solr

Administracja Solr:

Zarządzanie Apache Solr odbywa się za pomocą panelu Solr Dashboard. Jest to dostępne przez przeglądarkę internetową pod adresem http://localhost:8983/solr. Poniższy rysunek przedstawia widok główny.

Po lewej stronie znajduje się menu główne, które prowadzi do podsekcji dotyczących logowania, administrowania rdzeniami Solr, konfiguracji Javy i informacji o stanie. Wybierz żądany rdzeń za pomocą pola wyboru poniżej menu. Po prawej stronie menu wyświetlane są odpowiednie informacje. Wpis w menu Dashboard pokazuje dalsze szczegóły dotyczące procesu Apache Solr, a także aktualnego obciążenia i wykorzystania pamięci.

Pamiętaj, że zawartość Dashboardu zmienia się w zależności od liczby rdzeni Solr oraz dokumentów, które zostały zaindeksowane. Zmiany dotyczą zarówno elementów menu, jak i odpowiednich informacji widocznych po prawej stronie.

Zrozumienie, jak działają wyszukiwarki:

Mówiąc najprościej, wyszukiwarki analizują dokumenty, kategoryzują je i umożliwiają wyszukiwanie na podstawie ich kategoryzacji. Zasadniczo proces składa się z trzech etapów, które określa się jako indeksowanie, indeksowanie i ranking [13].

Pełzanie jest pierwszym etapem i opisuje proces gromadzenia nowych i zaktualizowanych treści. Wyszukiwarka używa robotów, które są również znane jako pająki lub roboty indeksujące, stąd termin indeksowanie, aby przejść przez dostępne dokumenty.

Drugi etap nazywa się indeksowanie. Wcześniej zebrane treści można przeszukiwać poprzez przekształcenie oryginalnych dokumentów do formatu zrozumiałego dla wyszukiwarki. Słowa kluczowe i pojęcia są wyodrębniane i przechowywane w (ogromnych) bazach danych.

Trzeci etap nazywa się zaszeregowanie i opisuje proces sortowania wyników wyszukiwania według ich trafności z zapytaniem. Powszechne jest wyświetlanie wyników w kolejności malejącej, tak aby wynik, który ma największe znaczenie dla zapytania osoby wyszukującej był pierwszy.

Apache Solr działa podobnie do opisanego wcześniej procesu trzyetapowego. Podobnie jak popularna wyszukiwarka Google, Apache Solr wykorzystuje sekwencję zbierania, przechowywania i indeksowania dokumentów z różnych źródeł i udostępnia je/przeszukuje w czasie zbliżonym do rzeczywistego.

Apache Solr wykorzystuje różne sposoby indeksowania dokumentów, w tym następujące [14]:

  1. Korzystanie z modułu obsługi zapytań o indeks podczas przesyłania dokumentów bezpośrednio do Solr. Dokumenty te powinny być w formacie JSON, XML/XSLT lub CSV.
  2. Korzystanie z modułu obsługi żądań ekstrakcji (komórka Solr). Dokumenty powinny być w formacie PDF lub Office, które są obsługiwane przez Apache Tika.
  3. Korzystanie z modułu obsługi importu danych, który przenosi dane z bazy danych i kataloguje je za pomocą nazw kolumn. Moduł obsługi importu danych pobiera dane z wiadomości e-mail, kanałów RSS, danych XML, baz danych i zwykłych plików tekstowych jako źródeł.

Obsługa zapytań jest używana w Apache Solr, gdy wysyłane jest żądanie wyszukiwania. Program obsługi zapytań analizuje dane zapytanie w oparciu o tę samą koncepcję obsługi indeksu, aby dopasować zapytanie do wcześniej zindeksowanych dokumentów. Dopasowania są uszeregowane według ich stosowności lub trafności. Poniżej przedstawiono krótki przykład zapytania of.

Przesyłanie dokumentów:

Dla uproszczenia używamy przykładowego zbioru danych dla poniższego przykładu, który jest już dostarczony przez Apache Solr. Przesyłanie dokumentów odbywa się jako użytkownik solr. Krok 1 to stworzenie rdzenia o nazwie techproducts (dla wielu przedmiotów technologicznych).

$ solr/bin/solr utwórz -c techproducts

Wszystko jest w porządku, jeśli widzisz komunikat „Utworzono nowe podstawowe „produkty technologiczne””. Krok 2 to dodanie danych (dane XML z exampledocs) do wcześniej utworzonych podstawowych produktów technologicznych. W użyciu jest narzędzie, które jest sparametryzowane przez -c (nazwa rdzenia) i dokumenty do przesłania.

$ solr/bin/post -c techproducts solr/example/exampledocs/*.xml

Spowoduje to wyświetlenie danych wyjściowych pokazanych poniżej i będzie zawierało całe wezwanie oraz 14 dokumentów, które zostały zindeksowane.

Ponadto pulpit nawigacyjny pokazuje zmiany. Nowy wpis o nazwie techproducts jest widoczny w rozwijanym menu po lewej stronie, a liczba odpowiednich dokumentów zmieniona po prawej stronie. Niestety szczegółowy widok surowych zbiorów danych nie jest możliwy.

W przypadku, gdy rdzeń/kolekcja musi zostać usunięta, użyj następującego polecenia:

$ solr/bin/solr delete -c techproducts

Zapytanie o dane:

Apache Solr oferuje dwa interfejsy do odpytywania danych: poprzez webowy Dashboard i linię poleceń. Obie metody wyjaśnimy poniżej.

Wysyłanie zapytań przez panel Solr odbywa się w następujący sposób:

Linia poleceń akceptuje to samo zapytanie, co w Dashboard. Różnica polega na tym, że musisz znać nazwy pól zapytania. Aby wysłać takie samo zapytanie jak powyżej, musisz uruchomić w terminalu następujące polecenie:

$ curl
http://localhost:8983/solr/techproducts/query?q=”manu”:”Belkin

Dane wyjściowe są 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.

Zawijanie:

Gratulacje! Z sukcesem osiągnąłeś pierwszy etap. Podstawowa infrastruktura jest skonfigurowana i nauczyłeś się przesyłać dokumenty i wyszukiwać je.

Następnym krokiem będzie doprecyzowanie zapytania, sformułowanie bardziej złożonych zapytań oraz zrozumienie różnych formularzy internetowych udostępnianych przez stronę zapytań Apache Solr. Omówimy również, jak przetworzyć wynik wyszukiwania przy użyciu 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 branży IT i środowiskach NGO.

Frank Hofmann jest programistą IT, trenerem i autorem i woli pracować w Berlinie, Genewie i Kapsztadzie. Współautor książki o zarządzaniu pakietami Debiana dostępnej w dpmb.organizacja

How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...
Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...
Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...