How to Install Elasticsearch Locally

Elasticsearch

Introduction

Elasticsearch is a powerful, distributed search and analytics engine widely used for log analysis, full-text search, and real-time data processing. Installing Elasticsearch locally is beneficial for development, testing, and offline work, allowing engineers to configure and experiment without impacting production environments. This guide covers multiple installation methods, including Docker and language-specific package managers, with clear steps to help you set up Elasticsearch efficiently.

Installing Elasticsearch with Docker

Docker provides an easy way to install and manage Elasticsearch without dealing with system dependencies manually. To install Elasticsearch using Docker, follow these steps:

Ensure Docker is Installed
If you haven’t installed Docker, download and install it from Docker’s official site.

Pull the Elasticsearch Docker Image
Run the following command to download the latest Elasticsearch image:

docker pull docker.elastic.co/elasticsearch/elasticsearch:8.11.0

Start Elasticsearch Container
Launch Elasticsearch with the following command:

docker run -d --name elasticsearch \
  -p 9200:9200 -p 9300:9300 \
  -e "discovery.type=single-node" \
  docker.elastic.co/elasticsearch/elasticsearch:8.11.0

This starts Elasticsearch in single-node mode, making it suitable for local development.

Verify Installation
Use curl or a browser to check if Elasticsearch is running:

curl http://localhost:9200

A JSON response containing version details confirms a successful installation.

Installing Elasticsearch via Package Managers

Installing with pip (Python)

Python developers often interact with Elasticsearch using the elasticsearch-py client. Install it with:

pip install elasticsearch

Then, verify the installation with:

from elasticsearch import Elasticsearch
es = Elasticsearch("http://localhost:9200")
print(es.info())

Installing with npm (Node.js)

For Node.js applications, install the Elasticsearch client via npm:

npm install @elastic/elasticsearch

Test the connection using:

const { Client } = require('@elastic/elasticsearch');
const client = new Client({ node: 'http://localhost:9200' });

client.info().then(console.log).catch(console.error);

Installing with gem (Ruby)

If you’re using Ruby, install the Elasticsearch client with:

gem install elasticsearch

Validate the setup with:

require 'elasticsearch'
client = Elasticsearch::Client.new(url: 'http://localhost:9200')
puts client.info

Installing with Maven/Gradle (Java)

For Java applications, add Elasticsearch dependencies to your build tool:

Maven

Add the following dependency to pom.xml:

<dependency>
  <groupId>co.elastic.clients</groupId>
  <artifactId>elasticsearch-java</artifactId>
  <version>8.11.0</version>
</dependency>

Gradle

Add this to build.gradle:

dependencies {
    implementation 'co.elastic.clients:elasticsearch-java:8.11.0'
}

Verify the connection in Java:

import co.elastic.clients.elasticsearch.ElasticsearchClient;
import co.elastic.clients.transport.rest_client.RestClientTransport;
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;

public class ElasticsearchTest {
    public static void main(String[] args) {
        var restClient = RestClient.builder(new HttpHost("localhost", 9200)).build();
        var transport = new RestClientTransport(restClient, new co.elastic.clients.json.jackson.JacksonJsonpMapper());
        var client = new ElasticsearchClient(transport);

        System.out.println(client.info().version());
    }
}

Managing and Verifying Elasticsearch Installation

Once installed, ensure Elasticsearch is running and accessible:

  • Use curl http://localhost:9200 or open the URL in a browser to check the response.
  • Check logs with docker logs elasticsearch (for Docker installations).
  • Use language-specific clients to confirm connectivity.
  • Stop Elasticsearch when not in use with docker stop elasticsearch or the equivalent command for your installation method.

By following these steps, you can install and run Elasticsearch locally for development and testing, ensuring a reliable environment for building search-powered applications.

Last Releases

  • Elasticsearch 8.19.2
    Downloads: https://elastic.co/downloads/elasticsearch Release notes: https://www.elastic.co/guide/en/elasticsearch/reference/8.19/release-notes-8.19.2.html
  • Elasticsearch 9.1.2
    Downloads: https://elastic.co/downloads/elasticsearch Release notes: https://www.elastic.co/docs/release-notes/elasticsearch#elasticsearch-9.1.2-release-notes
  • Elasticsearch 8.17.10
    Downloads: https://elastic.co/downloads/elasticsearch Release notes: https://www.elastic.co/guide/en/elasticsearch/reference/8.17/release-notes-8.17.10.html

More From Author

Leave a Reply

Recent Comments

No comments to show.