Elasticsearch is a distributed, RESTful search and analytics engine capable of addressing a growing number of use cases. As the heart of the Elastic Stack, it centrally stores your data so you can discover the expected and uncover the unexpected. See https://www.elastic.co/products/elasticsearch

BlogSearch Architecture

The overview of the BlogSearch, a simple search service for blog posts.

Setting Up Monitoring For Java With Datadog

This article explains how to set up Datadog monitoring for a Java application and an Elasticsearch service running in Alibaba Cloud.

Internal Structure Of Elasticsearch Java High-Level REST Client

This article explores the implementation of Elasticsearch Java High-Level REST Client (HLRC) by analyzing the structure of the client, the dependencies, the error handling mechanism, serialization, its observability, and more.

The Decision System For Shard Allocation in Elasticsearch

Curious about how does a decision system work? This article explains the deciders for shard allocation in Elasticsearch by going through their responsibility, structure, decision making, lifecycle, testing, and more.

Slow Query Logs In Elasticsearch

Better understand the slow queries in Elasticsearch by using the slow logs. In this article, we discuss the log structure, the thresholds, and some potential root causes.

Elasticsearch Snapshot Plugins

Elasticsearch snapshot repository plugins for AWS, GCP, and Azure

Elasticsearch Snapshot APIs

This article summarizes the list of APIs for "Snapshot and Restore" in Elasticsearch, which allows you to perform operations easily and navigate to official documentation if you need more detail.

Internal Structure Of Snapshot Repository

This article takes you to the Elasticsearch snapshot repository to explore its internal structure and understand the contents and uses of different files.

Elasticsearch Settings

This article describes the different types of settings of Elasticsearch: cluster settings, index settings, node settings, the difference between static and dynamic settings, and some commonly used curl commands.

How to prevent data loss in Elasticsearch?

Six practical solutions to improve data reliability: improve number of replicas, snapshot and restore, RAID, MQ, etc.

Fix Corrupted Index in Elasticsearch

How to fix corrupted index in Elasticsearch cluster without snapshot?

DVF: Real Estate Analysis For Île-de-France in 2020

This article studies the real estate market of Île-de-France in 2020 by exploring and visualizing the dataset DVF using Kibana. We will discuss the global landscape, the impact of COVID-19, the situation in different departments, and more.

DVF: Aggregations

How to write and execute metric and bucket aggregations in Elasticsearch for dataset: Demandes de valeurs foncières (DVF) for data analytics. Also, how to execute aggregations that contain sub-aggregations.

Elasticsearch: Generate Configuration With Python Jinja 2

This article explains how to generate the configuration for Elasticsearch using Python templating engine Jinja 2 by going through a basic use-case. It also explains features about Jinja2, testing, and more.

Disk Watermarks In Elasticsearch

Understanding different disk watermarks: low, high, and flood-stage in Elasticsearch. The symptom when the cluster reaches these values and how to mitigate or avoid the issues. Also, how to better operate your clusters using these watermarks.

DVF: Snapshot And Restore

Part 4: How to create a snapshot for index "transactions" of DVF and restore it to an Elasticsearch cluster.

DVF: Storage Optimization

Part 3: How to optmize storage of a given index by 40% using force-merge.

DVF: Indexing Optimization

Part 2: Optimize the indexing process using bulk index requests and multi-threading.

DVF: Indexing New Documents

Part 1: Indexing new documents into Elasticsearch using French government's open data "Demande de valeurs foncières (DVF)".

Using Java Time In Different Frameworks

How to use Java Time in different frameworks? This article shares examples in Java concurrency classes, Jackson, Akka, and Elasticsearch.

18 Allocation Deciders in Elasticsearch

This article explains the 18 allocation deciders in Elasticsearch: when they decide to allow, deny, or throttle the shard allocation under different circumstances. Also, a complete list of messages for unassigned shards.

Elasticsearch: Common Index Exceptions

Explain the common Elasticsearch exceptions occurred when indexing new documents, with sample messages, analysis, suggestions and external resources for further investigation.

GC in Elasticsearch

Basic information about garbage collection (GC) in Elasticsearch, including the default garbage collector used, JVM options, GC logging, and more.

Discovery in Elasticsearch

How does discovery work in Elasticsearch? This article explains different mechanisms of discovery, the key settings, fault detection, related logs, and more.

Wrap Elasticsearch Response Into CompletableFuture

Wrap Elasticsearch client response into CompletableFuture in Java for Elasticsearch transport client or Java high level REST client.

Testing Elasticsearch With Docker And Java High Level REST Client

Testing Elasticsearch with docker and Java High Level REST Client

Elasticsearch: cat nodes API

Use Elasticsearch cat nodes API to understand the state of your Elasticsearch: id, name, IP address, CPU, load, memory, and much more.

Elasticsearch: Scroll API in Java

Elasticsearch Scroll API sample written in Java, useful for retrieving large numbers of results (or even all results) from a single search request.

Indexing New Data in Elasticsearch

Initializing Elasticsearch client, sending a single index request or a bulk index request, index response, different content types, refresh policy etc.

Testing Elasticsearch with ESSingleNodeTestCase

Writing unit tests for Elasticsearch using Elasticsearch Single Node Test Case (ESSingleNodeTestCase), a derived class of ESTestCase which simplifies the testing set up for you.