Elasticsearch to wyszukiwarka i silnik analityczny typu open source, który umożliwia przechowywanie, wyszukiwanie i analizowanie danych w czasie rzeczywistym. Elasticsearch wykorzystuje architekturę rozproszoną i jest zbudowany na Apache Lucene i charakteryzuje się wysoką wydajnością, skalowalnością i użytecznością. Elasticsearch jest szeroko stosowany w wyszukiwaniu, analityce i analizie logów.
Co potrafi Elasticsearch?
Posiada następujące możliwości:
- Przechowywanie i wyszukiwanie danych: Elasticsearch umożliwia przechowywanie i indeksowanie różnych typów danych, w tym tekstu, liczb, danych geoprzestrzennych i niestandardowych typów danych.
- Wyszukiwanie pełnotekstowe: Elasticsearch zapewnia wyszukiwanie pełnotekstowe z obsługą złożonych zapytań, takich jak wyszukiwane frazy, zapytania wieloznaczne, wyszukiwanie rozmyte i inne.
- Architektura rozproszona: Elasticsearch wykorzystuje architekturę rozproszoną, która umożliwia skalowanie i obsługę dużych ilości danych.
- APIS: Elasticsearch oferuje różne interfejsy API do zarządzania danymi i indeksowania, w tym interfejsy API REST i Java.
- Agregacje danych: Elasticsearch obsługuje agregacje, które pozwalają analizować dane i wyodrębniać informacje podsumowujące, takie jak średnia, suma, minimum i maksimum.
- Skrypty wyszukiwania: Elasticsearch jest używany do skryptów wyszukiwania w wielu aplikacjach i systemach, w tym portalach wyszukiwania, systemach monitorowania, systemach kontroli wersji i innych.
- Skalowalność: Elasticsearch oferuje skalowalność i wielozadaniowość w celu zapewnienia wysokiej dostępności i wydajności w dużych systemach.
Proces instalacji
Instrukcje instalacji Elasticsearch będą mniej więcej takie same dla różnych wersji Ubuntu. Najpierw należy zaktualizować listę pakietów:
sudo apt update
Zainstalować pakiet OpenJDK 11, który jest wymagany do działania Elasticsearch:
sudo apt install openjdk-11-jdk
Dodać klucz Elasticsearch i repozytorium do APT:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
Uwaga: W adresie URL zamiast "7.x" może być podana inna wersja Elasticsearch.
Zaktualizuj listę pakietów i zainstaluj Elasticsearch:
sudo apt update
sudo apt install elasticsearch
Skonfiguruj Elasticsearch, edytując plik konfiguracyjny /etc/elasticsearch/elasticsearch/elasticsearch.yml:
sudo nano /etc/elasticsearch/elasticsearch.yml
Przyjrzyjmy się niektórym z najważniejszych ustawień:
- cluster.name: nazwa klastra Elasticsearch
- node.name: nazwa węzła Elasticsearch
- network.host: adres IP lub nazwa hosta, na którym będzie działał Elasticsearch
- http.port: port API HTTP Elasticsearch (domyślnie 9200)
- memory.locked: true, aby umożliwić Elasticsearch blokowanie pamięci w obszarze strony, co zmniejsza prawdopodobieństwo przełączania kontekstu i poprawia wydajność.
Uruchom Elasticsearch i skonfiguruj automatyczne uruchamianie:
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Sprawdź, czy Elasticsearch działa, wysyłając żądanie do jego interfejsu API:
curl http://localhost:9200/
Powinieneś zobaczyć odpowiedź z informacjami o statusie i wersji Elasticsearch, takimi jak:
{
"name" : "my-elasticsearch-node",
"cluster_name" : "my-elasticsearch-cluster",
"cluster_uuid" : "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
"version" : {
"number" : "7.15.1",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "83c34f456ae29d60e94d886e455e6a3409bba9ed",
"build_date" : "2021-10-07T21:56:19.031608185Z",
"build_snapshot" : false,
"lucene_version" : "8.9.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Instalacja Elasticsearch na Ubuntu powinna zakończyć się pomyślnie.