In-process Rust library and multi-tenant server for lexical, vector and hybrid search, with an MCP server for AI agents.
oramasearch/orama
A JavaScript/TypeScript search engine library that runs in the browser, Node.js, or edge runtimes, supporting full-text, vector, and hybrid search.
Open-source alternative to:Algolia
- Stars
- 10,603
- Forks
- 409
- Open issues
- 35
- Last commit
- 20 days ago
What is it?
Orama is a search library written in TypeScript that you embed directly in your application. It can run in the browser, on a server, or on edge networks, so you can add search without standing up a separate search service.
The library covers full-text search with typo tolerance, BM25 ranking, stemming and tokenization in 30 languages, and field boosting. It also supports vector search and hybrid search that combines both, along with filters, facets, geosearch and pinning rules. Documents are defined against a typed schema that includes string, number, boolean, enum, geopoint and vector fields.
Orama provides plugins for generating embeddings at insert and search time, proxying calls to OpenAI safely from the client, and building chat-style answer sessions over indexed data. The project is distributed on npm and can also be loaded from a CDN or used with Deno.
Key features
- 01Full-text search with typo tolerance, BM25 ranking, and exact match
- 02Vector and hybrid search for semantic retrieval
- 03Filters, facets, geosearch, and field boosting
- 04Stemming and tokenization across 30 languages
- 05Plugin system for embeddings, persistence, and analytics
Use cases
- Adding client-side search to a static website or documentation site
- Building semantic or hybrid search over product catalogs
- Creating a RAG-style question answering interface over your own content
Quick start
- 1
Install the package with npm
npm i @orama/orama - 2
Create a database, insert documents and search them in your code
Things to know
- Vector and hybrid search need text embeddings, which you must supply or generate with a plugin.
- Generating embeddings with OpenAI models requires an API key through the Secure Proxy plugin.
In collections
Topics
FAQ
- What is orama?
- A JavaScript/TypeScript search engine library that runs in the browser, Node.js, or edge runtimes, supporting full-text, vector, and hybrid search. Orama is a search library written in TypeScript that you embed directly in your application. It can run in the browser, on a server, or on edge networks, so you can add search without standing up a separate search service.
- Is orama free to use? What license does it have?
- orama is open source under the Other license. Check the license terms before using it in commercial products.
- Is orama still maintained?
- Actively maintained. The last commit to orama was on Oct 18, 2026.
- What can I use orama for?
- Adding client-side search to a static website or documentation site Building semantic or hybrid search over product catalogs Creating a RAG-style question answering interface over your own content
- How do I install orama?
- Install the package with npm: npm i @orama/orama Create a database, insert documents and search them in your code
- Where can I get orama?
- The source code and installation instructions are on GitHub: https://github.com/oramasearch/orama
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Distributed, RESTful search and analytics engine that also serves as a scalable data store and vector database.
A fast, typo-tolerant search engine with API that supports full-text, semantic, and hybrid search for websites and apps.
Typesense is an open-source, in-memory search engine with typo tolerance, faceting, geo search and vector search, aimed at being a simpler alternative to Algolia and Elasticsearch.
Open-source search database supporting full-text, vector and hybrid search with real-time indexing and SQL, positioned as an Elasticsearch alternative.
Apache Solr is an open-source, multi-modal search platform built on Apache Lucene for full-text, vector, and geospatial search.