Seriál Elasticsearch: 2. Instalace

Prvním předpokladem pro práci s Elasticsearch je mít jej stažený a spuštěný. Způsobů, jak jej zprovoznit je více a záleží na operačním systému, který používáte. Příklady zde uvedené jsou prováděny v OS X, měly by být shodné i pro Linux. Pro Windows pak existuje MSI Installer, který celý proces usnadňuje.

Prerekvizity

Pokud ještě nemáte stažený repozitář z GitHubu k tomuto tutoriálu, nyní je ta pravá chvíle.

# stažení repozitáře
git clone git@github.com:ludekvesely/elasticsearch-tutorial.git

# přesunutí se do stažené složky
cd elasticsearch-tutorial/01-install  

Pro spuštění Elasticsearch je nutné mít korektně nainstalovanou Javu, doporučována je verze Oracle JDK 1.8.0 nebo vyšší. Stáhnout ji lze z webu Oracle. To, že máte nainstalovanou správnou verzi je možné ověřit následujícím příkazem:

java -version  
# java version "1.8.0_05"
# Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
# Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

echo $JAVA_HOME  
# /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home

Pro instalaci z terminálu jsou navíc vyžadovány další konzolové nástroje: wget, unzip a tar. Ty můžete nainstalovat prostřednictvím vašeho balíčkovacího manažera (např. Homebrew v případě OS X). Pro dotazování se Elasticsearch z konzole je nejběžnější použití nástroje curl.

Pro zachování konzistence a předejití možným nedorozumněním spouštějte všechny následující konzolové příkazy ve složce 01-install. Stejně tak stažení archivů a jejich rozbalení doporučuji provádět v rámci této složky.

Stažení Elasticsearch

Ze všech dostupných variant bude na všech operačních systémech funkční ta využívající stažení a následné rozbalení ZIP archivu. Pokračujte tedy na adresu www.elastic.co/downloads/elasticsearch a klikněte na možnost ZIP.

Stažení Elasticsearch

Stažený archiv rozbalte do libovolné složky, její obsah bude vypadat následovně:

Stažený a rozbalený Elasticsearch

Celý postup je také možné provést z terminálu následujícími příkazy:

# ve složce 01-install
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.zip  
unzip elasticsearch-5.5.1.zip  

Základní konfigurace

Nyní je možné nastavit základní parametry Elasticsearch editací souboru elasticsearch.yml ve složce config. První úpravou je nastavení cluster.name, čímž docílíme toho, že se nebude snažit spuštěný Elasticsearch připojit na jiné běžící instance dostupné z vašeho počítače. Výsledná podoba souboru je pak následující:

# elasticsearch-5.5.1/config/elasticsearch.yml
cluster.name: elasticsearch-tutorial  

Pokud instalujete Elasticsearch pomocí konzolových příkazů, lze použít již připravený konfigurační soubor - stačí jej nakopírovat na správné místo příkazem:

cp elasticsearch.yml elasticsearch-5.5.1/config/  

Instalace českého slovníku

Pro správnou funkci češtiny při vyhledávání je třeba nainstalovat český slovník. Stačí stáhnout příslušné soubory projektu Hunspell. K dispozici jsou pro řadu jazyků, české jsou připraveny na GitHubu v repozitáři tohoto tutoriálu. Slovník je tvořen třemi soubory cs_CZ.aff, cs_CZ.dic a settings.yml, které uložte do složky config/hunspell/cs_CZ.

Stažené slovníky v Elasticsearch

Instalace pluginu ICU

Posledním doplňkem pro korektní funkčnost češtiny je plugin ICU, který umožňuje správnou práci s kódováním Unicode v českém jazyce. Jeho instalace je možná zadáním následujícího příkazu ve složce 01-install:

elasticsearch-5.5.1/bin/elasticsearch-plugin install analysis-icu  

Spuštění Elasticsearch

Nyní nám již nebrání nic ve spuštění Elasticsearch - ten se spustí v terminálu ve složce 01-install příkazem:

elasticsearch-5.5.1/bin/elasticsearch  

Následně se zobrazí výpis při spouštění Elasticsearch. Jeho správnou instalaci je možné ověřit otevřením adresy http://localhost:9200 ve webovém prohlížeči.

Spuštěný Elasticsearch

Nástroje pro práci s Elasticsearch

Abychom mohli s Elasticsearch rozumně pracovat (psát dotazy pro ukládání dokumentů nebo vyhledávání), je vhodné nainstalovat další nástroje, které takovou práci usnadní.

Kibana

Kibana je grafické rozhraní, které se umí připojit na Elasticsearch a vizualizovat data, která jsou v něm uložena. Primárním účelem tohoto nástroje je rychlé vyhledávání v uložených datech a vytváření vizualizací (grafů a tabulek) a jejich skládání do komplexních dashboardů. Její součástí je však také editor, který umožňuje pohodlné vykonávání příkazů, zvýrazňuje syntaxi, a při psaní dotazů pomáhá našeptáváním.

Kibana je ke stažení na adrese www.elastic.co/downloads/kibana. Zde stáhněte verzi dle vašeho operačního systému. Pro OS X je k dispozici právě jedna:

Kibana - stažení

Stažený archiv rozbalte, spustitelný soubor je ve složce bin.

Kibana - stažený archiv

Stažení a spuštění je možné opět provést také z terminálu. Použijte k tomu následující příkazy spouštěné ve složce 01-install.

wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.1-darwin-x86_64.tar.gz

tar xzf kibana-5.5.1-darwin-x86_64.tar.gz

kibana-5.5.1-darwin-x86_64/bin/kibana  

Po jejich provedení můžete otevřít adresu http://localhost:5601 ve svém webovém prohlížeči, kde bude třeba provést prvotní konfiguraci. Název indexu nastavte jako * a jako pole s časem nastavte I don't want to use Time Filter. Následně klikněte na tlačítko Create.

Kibana - nastavení

Nyní se vytvořilo prvotní nastavení a jsou tak k dispozici ostatní záložky v grafickém rozhraní. Nás bude nejvíce zajímat předposlední záložka Dev Tools, pod kterou je dostupný editor.

Kibana - Dev Tools

Zde již můžeme vytvářet a spouštět dotazy, využívat našeptávání a zvýrazňování syntaxe. Můžete zkusit spustit předpřipravený dotaz GET _search, který provede vyhledávání nad všemi dokumenty uloženými v Elasticsearch. V pravé části okna je vidět, že byly nalezeny 2 dokumenty ("total": 2). Jde o uložené nastavení vytvořené v předchozím kroku.

Cerebro

Posedním instalovaným nástrojem je Cerebro. Sice není pro vývoj nezbytně nutný, nabízí však funkce, kterými Kibana nedisponuje - umožňuje především správu a monitoring clusteru, tedy zobrazení jeho stavu a úpravu konfigurace. Je však užitečný i pro lokální vývoj, kdy graficky zobrazí všechny dostupné indexy. Pro stažení je třeba přejít na stránku releases na GitHubu, kde je ke stažení ZIP archiv.

Cerebro - stažení

Stažený soubor rozbalte, spustitelný soubor cerebro se nachází ve složce bin. Spustit jej můžete z terminálu příkazem cerebro-0.6.6/bin/cerebro. Po spuštění je k dispozici grafické rozhraní na adrese http://localhost:9000. Zde je nutné nastavit, kde je Dostupný Elasticsearch. Zadejte http://localhost:9200 a pokračujte tlačítkem Connect.

Cerebro - nastavení připojení

Po připojení k Elasticsearch je vidět základní statistika - počty indexů, dokumentů, nebo vytížení hardware. Aktuálně však není vidět žádný index - po kliknutí na .special se ale zobrazí index .kibana s uloženým nastavením Kibany.

Cerebro

Kompletní stažení a instalaci je opět možné provést z terminálu ve složce 01-install:

wget https://github.com/lmenezes/cerebro/releases/download/v0.6.6/cerebro-0.6.6.zip

unzip cerebro-0.6.6.zip

cerebro-0.6.6/bin/cerebro  

Výsledný skript pro instalaci

Veškeré výše provedené kroky jsem sepsal do skriptu install.sh, po jehož spuštění by měl být korektně nainstalovaný Elasticsearch včetně všech pluginů a podpůrných nástrojů. Pokud jste se tedy ztratili v některém z výše uvedených kroků, zde jsou uvedeny veškeré potřebné příkazy ve správném pořadí.

Po úspěšné instalaci je možné použít skript start.sh, který spustí všechny stažené nástroje. Kompletní instalace a spuštění tedy vypadá následovně:

git clone git@github.com:ludekvesely/elasticsearch-tutorial.git  
cd elasticsearch-tutorial/01-install  
./install.sh
./start.sh

Instalace ve Windows

Ve Windows možná nemáte dostupné všechny nástroje pro stažení a spuštění Elasticsearch, případně dáváte přednost grafickému rozhraní při instalaci. Pro tento případ je k dispozici MSI instalátor, který vás instalací a konfigurací provede. Podrobný návod jak jej použít je k dispozici v dokumentaci Elasticsearch.

Shrnutí

V této kapitole jsme stáhnuli Elasticsearch, doinstalovali dopňky nutné pro správnou funkci českého vyhledávání a následně jej spustili. Z tohoto stavu vychází další díly totho seriálu. Nyní můžeme přejít k ukládání prvních dokumentů a jejich vyhledávání v následující kapitole.

Luděk Veselý

PHP Developer