Elasticsearch: Porovnání verzí
m →Klíčové vlastnosti: oprava |
m typo značka: editace z Vizuálního editoru |
||
Řádek 17: | Řádek 17: | ||
}} |
}} |
||
'''Elasticsearch''' je v [[Informatika|informatice]] název [[Fulltextové vyhledávání|fulltextového vyhledávače]] vycházejícího z [[Apache |
'''Elasticsearch''' je v [[Informatika|informatice]] název [[Fulltextové vyhledávání|fulltextového vyhledávače]] vycházejícího z [[Apache Licence]]. Disponuje [[Representational State Transfer|RESTful]] rozhraním a nabízí vysokou dostupnost, rychlost a škálovatelnost. Je vyvíjený v [[Java (programovací jazyk)|Javě]] a komunikovat s ním lze pomocí webového rozhraní. Je šířen zdarma pod licencí [[Apache Licence|Apache]]. |
||
== Klíčové vlastnosti == |
== Klíčové vlastnosti == |
Verze z 13. 6. 2020, 13:25
Vývojář | Elastic NV |
---|---|
První vydání | 8. února 2010 |
Aktuální verze | 8.13.2 (8. dubna 2024) |
Operační systém | multiplatformní |
Vyvíjeno v | Java |
Typ softwaru | indexace a fulltextové vyhledávání |
Licence | Apache Licence 2.0 |
Web | https://www.elastic.co/products/elasticsearch |
Některá data mohou pocházet z datové položky. |
Elasticsearch je v informatice název fulltextového vyhledávače vycházejícího z Apache Licence. Disponuje RESTful rozhraním a nabízí vysokou dostupnost, rychlost a škálovatelnost. Je vyvíjený v Javě a komunikovat s ním lze pomocí webového rozhraní. Je šířen zdarma pod licencí Apache.
Klíčové vlastnosti
Data v reálném čase
Hlavním rysem Elasticsearch je jeho rychlost, díky tomu je možné například na webových stránkách používat filtry a výsledky vyhledávání se zobrazují prakticky okamžitě.
Distribuovaný systém
Elasticsearch lze snadno škálovat dle toho, jak se zvyšuje zatížení serveru, na němž běží. Pokud výkon serveru nestačí, stačí přidat další server. Takto vzniklý cluster pak rozloží data optimálně mezi vzniklé uzly.
Vysoká dostupnost
Pokud některý z uzlů clusteru vykazuje chybu, Elasticsearch jej detekuje a vyřadí z provozu. Data pak rozdělí mezi zbylé uzly tak, aby byla zajištěna co nejvyšší dostupnost a data zůstala v bezpečí.
Fulltextové vyhledávání
Elasticsearch využívá k vyhledávání Apache Lucene, což je patrně nejvýkonnější fulltextové vyhledávání dostupné v rámci open source software. Vyhledávání nabízí podporu více jazyků, vyhledávání na základě geografické polohy, vyhledávání podobných nebo příbuzných záznamů, vyhledávání ve stylu „měli jste na mysli“. Lze jej také využít k inteligentnímu automatickému doplňování formulářů na webu.
RESTful API
Elastic využívá API – téměř každá akce může být provedena pomocí dokumentu ve formátu JSON, který je zasílán přes HTTP. Pro mnoho programovacích jazyků také existují knihovny zjednodušující práci s Elasticsearch.
Elasticsearch je vyvíjen společně s enginem pro sběr a analýzu dat s názvem Logstash, analytickou a vizualizační platformou s názvem Kibana (software) a se sbírkou zjednodušených datových přepravců Beats.
Způsob uložení dat
Elasticsearch je bezschémovou databází. Není proto třeba definovat strukturu databáze, protože ta se vytvoří sama na základě vložených dat.
Komunikace s Elasticsearch
Komunikace probíhá přes HTTP – například mazání probíhá pomocí HTTP metody DELETE. Požadavky i odpovědi se zasílají ve formátu JSON. Díky tomu je možné Elasticsearch využívat v jakémkoli programovacím jazyce.
Instalace
Elasticsearch vyžaduje instalaci Java Runtime Environment (JRE), verze 8 či vyšší. Nejprve je nutné stáhnout aktuální distribuci z oficiálního webu http://www.elasticsearch.org/download/ ve formě archivu nebo spustitelného souboru. Poté stačí spustit skript elasticsearch ve složce bin, v případě Unixu s parametrem -f. K dispozici jsou také balíčky DEB a RPM pro uživatele Linuxu.
Příklad stažení a spuštění
# Stažení curl -L -O https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.2/elasticsearch-2.3.2.tar.gz # Rozbalení staženého archivu tar -xvf elasticsearch-2.3.2.tar.gz # Přepnutí do složky se spustitelným souborem cd elasticsearch-2.3.2/bin # Spuštění ./elasticsearch
Služba po spuštění vypisuje (loguje) na konzoli informace o tom, co v rámci spuštění proběhlo. Pokud poslední hláška je „started“, je to indikací toho, že byla úspěšně rozběhnuta.
To, že spuštění proběhlo v pořádku, lze ověřit zadáním příkazem curl -X GET http://localhost:9200/
, případně zadáním adresy http://localhost:9200/ do webového prohlížeče. Výsledkem je JSON.
Nástroje usnadňující práci s Elasticsearch
Důležitým nástrojem, který umožňuje snadné prohledávání dat, je Elastic HQ. Dostupný je na adrese https://web.archive.org/web/20140810235654/http://www.elastichq.org/app/index.php a celý je napsaný v JavaScriptu. Běží tedy kompletně ve webovém prohlížeči a přitom jej není třeba instalovat. Stačí zadat adresu, na které je Elasticsearch dostupný, a hned je možné prozkoumávat cluster včetně jednotlivých uzlů.
Dalším nástrojem, který může usnadnit práci s Elasticsearch, je doplněk pro prohlížeč Chrome Postman. Ten umožňuje zasílat HTTP požadavky, vybírat druh požadavku (POST, GET atd.), podporuje zvýrazňování syntaxe textu ve formátu JSON a umožňuje procházet historii zaslaných dotazů.
Příklady použití
# Vytvoření indexu $ curl -XPUT 'http://localhost:9200/twitter/' # Přidání dokumentu $ curl -XPUT 'http://localhost:9200/twitter/tweet/1' -d '{ "tweet" : { "user" : "kimchy", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elastic Search" } }' # Získání dokumentu dle jeho id $ curl -XGET 'http://localhost:9200/twitter/tweet/1' # Vyhledání dokumentu $ curl -XGET 'http://localhost:9200/twitter/tweet/_search?q=user:kimchy'
Použití
Elasticsearch využívají například následující servery: GitHub, Foursquare, SoundCloud nebo StackOverflow.
Externí odkazy
- https://www.elastic.co/ – oficiální stránky
- (česky) http://www.zdrojak.cz/clanky/elasticsearch-vyhledavame-cesky/
- (česky) https://www.ludekvesely.cz/serial-elasticsearch-uvod/
- (anglicky) http://www.elasticsearchtutorial.com/elasticsearch-in-5-minutes.html
- (anglicky) http://joelabrahamsson.com/elasticsearch-101/
- (anglicky) http://exploringelasticsearch.com/
- (anglicky) http://www.javacodegeeks.com/2013/04/getting-started-with-elasticsearch.html