
Elasticsearch to rozproszony silnik wyszukiwania oparty na Apache Lucene. W rzeczywistości Elasticsearch to niezależna baza danych napisana w Javie. „Rozproszony”, ponieważ umożliwia klastrowanie – czyli uruchomienie wielu instancji tej samej aplikacji działających razem jako jedna – dzięki czemu można zbudować naprawdę dużą i wydajną bazę danych, która przyjmie dane wsadowe w wielu zaawansowanych formatach. A co najważniejsze, umożliwia szybkie wyszukiwanie pełnotekstowe i jest łatwa w obsłudze dla deweloperów, ponieważ komunikacja z Elasticsearch odbywa się za pomocą JSON.
Jeśli Twoja firma ma do czynienia z dużymi zbiorami danych, Elasticsearch jest stworzony właśnie dla Ciebie.
W Zdalny Admin przygotujemy dla Ciebie odpowiednie środowisko serwerowe, korzystające z tej bardzo wydajnej, nierelacyjnej bazy danych, a Twoi deweloperzy w bardzo łatwy sposób podłączą do niej swoją aplikację.
Elasticsearch nasłuchuje na porcie 9200 na interfejsie localhost. Wszystko wysyłamy więc przez HTTP, a w odpowiedzi otrzymujemy 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 jest równie 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 krótkiego tekstu było pokazanie, czym jest Elasticsearch i jak radzić sobie z dużą ilością danych w inny sposób niż przez dokładanie kolejnych serwerów z MySQL lub PostgreSQL.
Przykłady kodu zostały zaczerpnięte z elasticsearchtutorial.
