OpenSearch
OpenSearch
Sub-chapter 3 of Open Source Projects · Search, analytics, and vectors - under one Apache 2.0 roof
OpenSearch is one of the most consequential forks in modern open source. When Elastic relicensed Elasticsearch and Kibana to the non-OSI SSPL/Elastic License v2 in 2021, AWS forked the last Apache 2.0 release (Elasticsearch 7.10.2) and made the result a community-owned project. In September 2024 AWS handed it to the Linux Foundation as the neutral OpenSearch Software Foundation.
What makes it interesting for a fresh grad: OpenSearch is large enough to be career-shaping to contribute to, small enough that the maintainers actually read your PR, and on a topic - search + analytics + vectors - that touches every Welzin product.
TL;DR
- What - Distributed search, analytics, and vector-database engine. Fork of Elasticsearch 7.10 + Kibana.
- License - Apache 2.0 (the whole point of the fork).
- Governance - OpenSearch Software Foundation under the Linux Foundation since Sep 16, 2024.
- Components - OpenSearch (engine) + OpenSearch Dashboards (the Kibana fork).
- Use cases - full-text search, log analytics, observability, semantic / vector search, RAG.
Why it exists
In January 2021, Elastic relicensed Elasticsearch and Kibana to the Server Side Public License (SSPL) and the Elastic License v2 - both non-OSI-approved. The change effectively prevented AWS and other cloud vendors from offering Elasticsearch as a managed service without paying Elastic. AWS responded by forking the last Apache-2.0 version (Elasticsearch 7.10.2 / Kibana 7.10.2) and renaming the result OpenSearch and OpenSearch Dashboards.
For three years, OpenSearch was AWS-controlled. In September 2024, AWS transferred ownership to a new neutral entity under the Linux Foundation - the OpenSearch Software Foundation - with SAP and Uber as Premier members alongside AWS, plus Aiven, Atlassian, Canonical, DigitalOcean, NetApp, and others. The handoff resolved the "is OpenSearch really open?" question definitively.
Adoption: 700M+ downloads, used in production at AWS, SAP, Uber, Stripe, Adobe, and thousands of smaller companies.
Architecture - the mental model
OpenSearch is a JVM-based distributed system built on Apache Lucene (the same indexing library Elasticsearch and Solr use).
Documents → Index → Shards (primary + replica)
↓
Nodes
↓
Cluster
↓
REST/JSON API ←→ Client / Dashboards
Key concepts:
- Index - a logical collection of documents (think: a database table).
- Shard - index data is split into primary shards (for scale) and replica shards (for HA).
- Node - a JVM running OpenSearch.
- Cluster - a group of nodes that coordinate via the master node.
Plugins add capabilities: Security, Alerting, k-NN (vector search), ML Commons (model serving), Index Management, Anomaly Detection, Observability, SQL/PPL, Notifications.
OpenSearch Dashboards is the UI layer - the Kibana fork - for visualization, exploration, and managing the cluster.
For RAG / AI workloads: the k-NN plugin stores dense vector embeddings and runs approximate nearest-neighbour search. OpenSearch is one of the few major search engines where lexical (BM25) and vector retrieval coexist natively - perfect for hybrid search.
License and governance
- License: Apache 2.0
- Foundation: OpenSearch Software Foundation (under Linux Foundation, Sep 2024)
- Premier members: AWS, SAP, Uber
Install and run locally
The fastest path is Docker:
docker run -d --name opensearch \
-p 9200:9200 -p 9600:9600 \
-e "discovery.type=single-node" \
-e "OPENSEARCH_INITIAL_ADMIN_PASSWORD=MyStrongP@ss1" \
opensearchproject/opensearch:latest
Then talk to it:
# Health check
curl -ku admin:MyStrongP@ss1 https://localhost:9200/_cluster/health
# Index a document
curl -ku admin:MyStrongP@ss1 -X PUT https://localhost:9200/welzin/_doc/1 \
-H 'Content-Type: application/json' \
-d '{"title": "Hello OpenSearch", "tags": ["bootcamp"]}'
# Search
curl -ku admin:MyStrongP@ss1 https://localhost:9200/welzin/_search?q=hello
For the UI, add Dashboards:
docker run -d --name opensearch-dashboards \
--link opensearch \
-p 5601:5601 \
-e "OPENSEARCH_HOSTS=[\"https://opensearch:9200\"]" \
opensearchproject/opensearch-dashboards:latest
Open http://localhost:5601.
The official getting-started tutorial: docs.opensearch.org/latest/getting-started.
How to contribute
- GitHub org: github.com/opensearch-project - dozens of repos.
- Community repo + contributor guide: github.com/opensearch-project/community.
- Onboarding doc: .github/ONBOARDING.md.
- Good first issue: filter across the org with this search.
- Slack: opensearch.org/slack.
- Forum: forum.opensearch.org.
Which repo to start on:
opensearch-project/OpenSearch- the engine itself (Java). High bar, large codebase.opensearch-project/OpenSearch-Dashboards- the UI (TypeScript/React). More approachable for web devs.opensearch-project/documentation-website- docs (Markdown). The friendliest entry-point.opensearch-project/ml-commons- ML plugin (Java). Interesting if you're going through Chapter VI.
Hands-on Checkpoints
- Run OpenSearch + Dashboards locally via Docker. Index 20 documents (e.g., the chapters from this bootcamp). Search them.
- Enable the k-NN plugin. Index dense-vector embeddings of those documents. Query by similarity.
- Browse
opensearch-project/documentation-websiteissues. Pick onegood first issuedoc fix. - Read the OpenSearch RFC process. Understand how new features are proposed.
- Join the OpenSearch Slack. Lurk in #core for a week.
Further reading
- OpenSearch home
- LF announcement (Sep 16, 2024)
- GitHub org
- Getting started
- Forum
- Slack invite
- TechCrunch coverage of the LF move
Welzin opinion: Search is one of those skills that compounds quietly. If you understand how Lucene scores documents, how to tune analyzers, and how hybrid (lexical + vector) retrieval really works, you become the person on every team who can fix "search feels off." That instinct is rare and valuable.