Apache Solr

Apache Solr Nastavení uzlu

Apache Solr Nastavení uzlu

Část 1: Nastavení jednoho uzlu

Dnes je elektronické ukládání dokumentů nebo dat na úložném zařízení rychlé a snadné, je také srovnatelně levné. Používá se odkaz na název souboru, který má popisovat, o čem je dokument. Alternativně jsou data uchovávána v systému správy databází (DBMS), jako je PostgreSQL, MariaDB nebo MongoDB, abychom pojmenovali jen několik možností. Několik paměťových médií je buď lokálně, nebo vzdáleně připojeno k počítači, například USB flash disk, interní nebo externí pevný disk, síťové úložiště (NAS), cloudové úložiště nebo založené na GPU / Flash, jako u Nvidia V100 [10].

Naopak reverzní proces, nalezení správných dokumentů ve sbírce dokumentů, je poměrně složitý. Většinou vyžaduje bezchybnou detekci formátu souboru, indexování dokumentu a extrahování klíčových konceptů (klasifikace dokumentu). To je místo, kde přichází rámec Apache Solr. Nabízí praktické rozhraní pro provádění uvedených kroků - vytvoření indexu dokumentu, přijetí vyhledávacích dotazů, skutečné vyhledávání a vrácení výsledku vyhledávání. Apache Solr tak tvoří jádro účinného výzkumu na sile databáze nebo dokumentů.

V tomto článku se dozvíte, jak Apache Solr funguje, jak nastavit jeden uzel, indexovat dokumenty, provádět vyhledávání a načíst výsledek.

Následné články vycházejí z tohoto článku a diskutujeme v nich další, konkrétnější případy použití, jako je integrace PostgreSQL DBMS jako zdroje dat nebo vyvažování zátěže mezi více uzly.

O projektu Apache Solr

Apache Solr je rámec vyhledávače založený na výkonném serveru indexu vyhledávání Lucene [2]. Je napsán v jazyce Java a je udržován pod záštitou Apache Software Foundation (ASF) [6]. Je volně dostupný pod licencí Apache 2.

Téma „Najít dokumenty a data znovu“ hraje ve světě softwaru velmi důležitou roli a mnoho vývojářů se tím intenzivně zabývá. Web Awesomeopensource [4] uvádí více než 150 projektů open-source pro vyhledávače. Počátkem roku 2021 jsou ElasticSearch [8] a Apache Solr / Lucene dva nejlepší psy, pokud jde o hledání větších datových souborů. Vývoj vašeho vyhledávače vyžaduje spoustu znalostí, Frank to dělá s knihovnou AdvaS Advanced Search [3] založenou na Pythonu od roku 2002.

Nastavení Apache Solr:

Instalace a provoz Apache Solr nejsou komplikované, je to prostě celá řada kroků, které musíte provést. Výsledek prvního dotazu na data počkejte asi 1 hodinu. Apache Solr navíc není jen hobby projekt, ale také se používá v profesionálním prostředí. Zvolené prostředí operačního systému je proto navrženo pro dlouhodobé používání.

Jako základní prostředí pro tento článek používáme Debian GNU / Linux 11, což je nadcházející vydání Debianu (počátkem roku 2021) a očekává se, že bude k dispozici v polovině roku 2021. V tomto kurzu očekáváme, že jste jej již nainstalovali, buď jako nativní systém, ve virtuálním počítači, jako je VirtualBox, nebo v kontejneru AWS.

Kromě základních komponent potřebujete v systému nainstalovat následující softwarové balíčky:

Tyto balíčky jsou standardní součástí systému Debian GNU / Linux. Pokud ještě nejsou nainstalované, můžete je po instalaci nainstalovat jako uživatel s právy správce, například root nebo prostřednictvím sudo, jak je znázorněno následovně:

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

Po přípravě prostředí je druhým krokem instalace Apache Solr. Od této chvíle není Apache Solr k dispozici jako běžný balíček Debianu. Proto je nutné načíst Apache Solr 8.8 ze sekce stahování na webových stránkách projektu [9]. Pomocí níže uvedeného příkazu wget jej uložte do adresáře / tmp ve vašem systému:

$ wget -O / tmp https: // stahování.apache.org / lucene / solr / 8.8.0 / solr-8.8.0.tgz

Přepínač -O zkracuje -výstupní dokument a umožňuje wget ukládat načtený tar.soubor gz v daném adresáři. Archiv má velikost zhruba 190 mil. Dále rozbalte archiv do adresáře / opt pomocí tar. Ve výsledku najdete dva podadresáře - / opt / solr a / opt / solr-8.8.0, zatímco / opt / solr je nastaven jako symbolický odkaz na druhý. Apache Solr je dodáván s instalačním skriptem, který spustíte dále, je následující:

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

To má za následek vytvoření uživatele Linuxu solr běží ve službě Solr plus jeho domovský adresář pod / var / solr vytvoří službu Solr, přidá se s odpovídajícími uzly a spustí službu Solr na portu 8983. Toto jsou výchozí hodnoty. Pokud s nimi nejste spokojeni, můžete je během instalace upravit nebo dokonce promluvit, protože instalační skript přijímá odpovídající přepínače pro úpravy nastavení. Doporučujeme vám podívat se na dokumentaci Apache Solr týkající se těchto parametrů.

Software Solr je uspořádán do následujících adresářů:

Podrobněji si o těchto adresářích můžete přečíst v dokumentaci Apache Solr [12].

Správa Apache Solr:

Apache Solr běží jako služba na pozadí. Můžete jej spustit dvěma způsoby, buď pomocí systemctl (první řádek) jako uživatel s oprávněními správce, nebo přímo z adresáře Solr (druhý řádek). Níže uvádíme seznam obou příkazů terminálu:

# systemctl start solr
$ solr / bin / solr start

Zastavení Apache Solr se provádí podobně:

# systemctl stop solr
$ solr / bin / solr stop

Stejným způsobem jde o restartování služby Apache Solr:

# systemctl restart solr
$ solr / bin / solr restart

Stav procesu Apache Solr lze dále zobrazit takto:

# systemctl status solr
$ solr / bin / solr status

Na výstupu je uveden soubor služby, který byl spuštěn, a to jak odpovídající časové razítko, tak zprávy protokolu. Obrázek níže ukazuje, že služba Apache Solr byla spuštěna na portu 8983 s procesem 632. Proces úspěšně běží po dobu 38 minut.

Chcete-li zjistit, zda je proces Apache Solr aktivní, můžete také provést křížovou kontrolu pomocí příkazu ps v kombinaci s grep. To omezuje výstup ps na všechny procesy Apache Solr, které jsou aktuálně aktivní.

# ps ax | grep --color solr

Obrázek níže to ukazuje pro jeden proces. Uvidíte volání Javy, které je doprovázeno seznamem parametrů, například porty využití paměti (512M) k poslechu na 8983 pro dotazy, 7983 pro požadavky na zastavení a typ připojení (http).

Přidávání uživatelů:

Procesy Apache Solr běží s konkrétním uživatelem jménem solr. Tento uživatel je užitečný při správě procesů Solr, nahrávání dat a odesílání požadavků. Po nastavení nemá uživatel solr heslo a očekává se, že bude mít jedno pro přihlášení, aby mohl pokračovat dále. Nastavit heslo pro uživatele solr jako root uživatele, je zobrazeno následovně:

# passwd solr

Správa solr:

Správa Apache Solr se provádí pomocí panelu Solr. To je přístupné přes webový prohlížeč z http: // localhost: 8983 / solr. Obrázek níže ukazuje hlavní pohled.

Vlevo vidíte hlavní nabídku, která vás vede k podsekcím pro protokolování, správu jader Solr, nastavení Java a stavové informace. Vyberte požadované jádro pomocí výběrového pole pod nabídkou. Na pravé straně nabídky se zobrazí odpovídající informace. Položka nabídky Dashboard zobrazuje další podrobnosti týkající se procesu Apache Solr, stejně jako aktuální zatížení a využití paměti.

Vezměte prosím na vědomí, že obsah řídicího panelu se mění v závislosti na počtu jader Solr a dokumentech, které byly indexovány. Změny ovlivní jak položky nabídky, tak odpovídající informace, které jsou viditelné vpravo.

Princip fungování vyhledávačů:

Jednoduše řečeno, vyhledávače analyzují dokumenty, kategorizují je a umožňují vám provádět vyhledávání na základě jejich kategorizace. V zásadě se proces skládá ze tří fází, které se nazývají procházení, indexování a hodnocení [13].

Plazení je první fáze a popisuje proces, kterým se shromažďuje nový a aktualizovaný obsah. Vyhledávací stroj používá roboty, které jsou také známé jako pavouci nebo prohledávače, a proto prochází dostupné dokumenty pojmem procházení.

Druhá fáze se nazývá indexování. Dříve shromážděný obsah lze prohledávat transformací původních dokumentů do formátu, kterému vyhledávač rozumí. Klíčová slova a koncepty jsou extrahovány a uloženy v (rozsáhlých) databázích.

Třetí fáze se nazývá hodnocení a popisuje proces třídění výsledků vyhledávání podle jejich relevance s vyhledávacím dotazem. Je běžné zobrazovat výsledky v sestupném pořadí, takže výsledek, který má nejvyšší relevanci pro vyhledávací dotaz, je na prvním místě.

Apache Solr funguje podobně jako dříve popsaný třístupňový proces. Stejně jako oblíbený vyhledávač Google, Apache Solr používá posloupnost shromažďování, ukládání a indexování dokumentů z různých zdrojů a zpřístupňuje je / prohledává téměř v reálném čase.

Apache Solr používá různé způsoby indexování dokumentů, včetně následujících [14]:

  1. Použití obslužné rutiny požadavku na index při nahrávání dokumentů přímo do Solr. Tyto dokumenty by měly být ve formátech JSON, XML / XSLT nebo CSV.
  2. Použití obslužného programu Extracting Request (Solr Cell). Dokumenty by měly být ve formátu PDF nebo Office, které podporuje Apache Tika.
  3. Pomocí obslužné rutiny importu dat, která přenáší data z databáze a katalogizuje je pomocí názvů sloupců. Obslužný program pro import dat načte jako zdroje data z e-mailů, kanálů RSS, dat XML, databází a souborů prostého textu.

Při odeslání požadavku na vyhledávání se v Apache Solr používá obslužný program dotazu. Obslužný program dotazu analyzuje daný dotaz na základě stejného konceptu obslužné rutiny indexu, aby odpovídal dotazu a dříve indexovaným dokumentům. Zápasy jsou řazeny podle jejich vhodnosti nebo relevance. Stručný příklad dotazování je uveden níže.

Nahrávání dokumentů:

Z důvodu jednoduchosti použijeme ukázkovou datovou sadu pro následující příklad, který již poskytuje Apache Solr. Nahrávání dokumentů se provádí jako uživatel. Krok 1 je vytvoření jádra s názvem techproducts (pro řadu technologických položek).

$ solr / bin / solr create -c techproducts

Všechno je v pořádku, pokud uvidíte zprávu „Vytvořeno nové jádro 'technologických produktů'“. Krok 2 je přidání dat (data XML z exampledocs) do dříve vytvořených klíčových technologických produktů. Používá se nástrojový příspěvek, který je parametrizován parametrem -c (název jádra) a dokumenty, které se mají nahrát.

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

Výsledkem bude výstup zobrazený níže a bude obsahovat celé volání plus 14 dokumentů, které byly indexovány.

Dashboard také zobrazuje změny. Nová položka s názvem techproducts je viditelná v rozbalovací nabídce na levé straně a počet odpovídajících dokumentů se změnil na pravé straně. Bohužel, detailní pohled na surové datové sady není možný.

V případě, že je třeba odstranit jádro / kolekci, použijte následující příkaz:

$ solr / bin / solr delete -c techproducts

Dotaz na data:

Apache Solr nabízí dvě rozhraní pro dotazování na data: prostřednictvím webového řídicího panelu a příkazového řádku. Níže vysvětlíme obě metody.

Odesílání dotazů prostřednictvím řídicího panelu Solr se provádí následovně:

Příkazový řádek přijímá stejný dotaz jako na řídicím panelu. Rozdíl je v tom, že musíte znát název polí dotazu. Chcete-li odeslat stejný dotaz jako výše, musíte v terminálu spustit následující příkaz:

$ zvlnění
http: // localhost: 8983 / solr / techproducts / dotaz?q = ”manu”: ”Belkin

Výstup je ve formátu JSON, jak je znázorněno níže. Výsledek se skládá z hlavičky odpovědi a skutečné odpovědi. Odpověď se skládá ze dvou datových sad.

Balení:

Gratulujeme! První fázi jste dosáhli s úspěchem. Je nastavena základní infrastruktura a vy jste se naučili, jak nahrávat a dotazovat dokumenty.

Další krok se bude zabývat tím, jak upřesnit dotaz, formulovat složitější dotazy a porozumět různým webovým formulářům poskytovaným na stránce dotazu Apache Solr. Budeme také diskutovat o tom, jak následně zpracovat výsledek hledání pomocí různých výstupních formátů, jako jsou XML, CSV a JSON.

O autorech:

Jacqui Kabeta je ekolog, vášnivý výzkumník, trenér a mentor. V několika afrických zemích pracovala v IT průmyslu a prostředí nevládních organizací.

Frank Hofmann je IT vývojář, trenér a autor a dává přednost práci z Berlína, Ženevy a Kapského Města. Spoluautor knihy Debian Package Management Book, která je k dispozici u dpmb.org

Hry Jak zobrazit počítadlo FPS v linuxových hrách
Jak zobrazit počítadlo FPS v linuxových hrách
Hraní na Linuxu získalo velký tlak, když společnost Valve v roce 2012 oznámila podporu systému Linux pro klienta Steam a jejich hry. Od té doby se mno...
Hry Jak stáhnout a přehrát Sid Meier's Civilization VI v systému Linux
Jak stáhnout a přehrát Sid Meier's Civilization VI v systému Linux
Úvod do hry Civilization 6 je moderní pojetí klasického konceptu představeného v sérii her Age of Empires. Myšlenka byla docela jednoduchá; začali bys...
Hry Jak nainstalovat a hrát Doom na Linuxu
Jak nainstalovat a hrát Doom na Linuxu
Úvod do Doom Série Doom vznikla v 90. letech po vydání původního Doomu. Byl to okamžitý hit a od té doby herní série získala řadu ocenění a původní Do...