Elasticsearch to rozproszony silnik wyszukiwania oparty o Apache Lucene. Elasticsearch to tak naprawdę niezależna baza danych, stworzona w Javie. Rozproszony dlatego ponieważ umożliwia klastrowanie czyli uruchomienie wielu instancji tej samej aplikacji tworzącą jedną, dzięki czemu możemy stworzyć naprawdę dużą i wydajną bazę danych, która przyjmie dane wsadowe w wielu zaawansowanych formatach, a co najważniejsze umożliwi szybkie wyszukiwanie pełnotekstowe, a na dodatek będzie łatwa w obsłudze dla deweloperów, ponieważ komunikacja z Elasticsearch następuje za pomocą JSON.
Jeśli w Twojej firmie masz do czynienia z dużymi zbiorami danych to właśnie Elasticsearch dedykowany jest dla Ciebie.
W Zdalny Admin utworzymy dla Ciebie odpowiednie środowisko serwerowe, które będzie korzystało z nierelacyjnej i bardzo wydajnej bazy jaką jest elasticsearch, a Twoi deweloperzy podłączą aplikację do niej w bardzo łatwy sposób.
Elasticsearch nasłuchuje na porcie 9200 na interfejsie localhost. Więc wszystko wysyłamy HTTP i dostajemy w wyniku JSON np:
{ “status” : 200, “name” : “Big Man”, “cluster_name” : “elasticsearch”, “version” : { “number” : „1.7.2”, “build_hash” : “e43676b1385b8125d647f593f7202acbd816e8ec”, “build_timestamp” : „2015-09-14T09:49:53Z”, “build_snapshot” : false, “lucene_version” : „4.10.4” }, “tagline” : „You Know, for Search” }
Proces wyszukiwania również jest bardzo prosty:
{ “took” : 85, “timed_out” : false, “_shards” : { “total” : 5, “successful” : 5, “failed” : 0 }, “hits” : { “total” : 3, “max_score” : 1.0, “hits” : [ { “_index” : “blog”, “_type” : “post”, “_id” : “1”, “_score” : 1.0, “_source” : { “user”: “dilbert”, “postDate”: “2011-12-15”, “body”: „Search is hard. Search should be easy.” , “title”: “On search” } }, { “_index” : “blog”, “_type” : “post”, “_id” : “2”, “_score” : 0.30685282, “_source” : { “user”: “dilbert”, “postDate”: “2011-12-12”, “body”: „Distribution is hard. Distribution should be easy.” , “title”: “On distributed search” } }, { “_index” : “blog”, “_type” : “post”, “_id” : “3”, “_score” : 0.30685282, “_source” : { “user”: “dilbert”, “postDate”: “2011-12-10”, “body”: „Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat” , “title”: “Lorem ipsum” } } ] }
Celem tego drobnego tekstu było zaprezentowanie czym jest Elasticsearch i jak radzić sobie z dużą ilością danych w sposób inny niż dokooptowanie kolejnych serwerów pod MySQL lub PostgreSQL.
Przykłady kodu zostały zaczerpnięte z elasticsearchtutorial.