Overview
Elasticsearch is a distributed, RESTful search and analytics engine designed for speed and scale.
Elasticsearch, built on Apache Lucene, stores data as schema-free JSON documents, making it highly flexible for handling structured, unstructured, and vector data in real time.
Elasticsearch Key Features
- Near Real-Time Search: Most documents become searchable within one second of being indexed.
- Distributed Architecture: It automatically divides data into shards, which are distributed across multiple nodes (a cluster) for high availability and horizontal scaling.
- Full-Text Search: It uses inverted indices to provide fast, relevant results for complex text queries, including support for stemming, synonyms, and fuzzy matching.
- Vector Database: Modern versions support vector search and dense embeddings, enabling AI-driven applications like Retrieval-Augmented Generation (RAG) and semantic search.
- RESTful API: You interact with the engine using standard HTTP methods (GET, POST, PUT, DELETE) and JSON-formatted requests.
Common Use Cases
Elasticsearch is the heart of the Elastic Stack (formerly the ELK Stack), which includes:
Common use case categories:
- Application Search: Powering search bars on websites and mobile apps.
- Log Analytics: Centralizing and searching through massive volumes of system logs for troubleshooting.
- Security Analytics: Monitoring for threats and investigating security incidents (SIEM).
- Observability: Tracking application performance (APM) and infrastructure metrics.
Core Terminology
| Concept | Description | Relational DB Equivalent |
|---|---|---|
| Index | A collection of related documents. | Database |
| Document | A single JSON object containing data fields. | Row |
| Field | An individual key-value pair within a document. | Column |
| Mapping | Defines how fields and their data types are indexed. | Schema |
For local testing, you can quickly get started using the Docker-based installation or try the managed Elastic Cloud service.
ngdpbase Integration
ngdpbase uses Elasticsearch as an optional search provider (ElasticsearchSearchProvider) in place of the default Lunr provider. Enable it via:
"ngdpbase.search.provider": "elasticsearchsearchprovider",
"ngdpbase.search.provider.elasticsearch.url": "http://localhost:9200"
See Configuration Properties Reference and Reindex Pages for setup details.
- [1] elastic.co
- [2] Wikipedia — Elasticsearch
- [3] GitHub — elastic/elasticsearch
- [4] Elasticsearch Reference Docs
- [5] YouTube — Elasticsearch in 100 Seconds
- [6] Databricks — What is Elasticsearch
- [7] Knowi — What is Elasticsearch
- [8] Knowi — Elasticsearch vs MySQL
- [9] Elasticsearch Relevance Engine
- [10] Elasticsearch as Vector Database
- [11] AWS — What is Elasticsearch
- [12] Elastic Stack
- [13] Elastic Cloud
- [14] Elastic Guide Index
- [19] Elasticsearch Downloads
- [21] Docker Hub — elasticsearch
No comments yet.