Orama
A JavaScript search engine that runs wherever JavaScript does, handling full-text, vector, and hybrid queries from a schema you define.

Orama is a search engine written for JavaScript runtimes. A database instance is created with an indexing schema, documents are inserted, and searches return scored hits along with the elapsed time, all inside the same process as the application.
Installation covers the usual package managers, direct import in a browser module, and Deno through npm specifiers. Ten data types are supported, including vectors whose dimensions are declared in the schema, which is what makes vector search possible without standing up a separate service.
Search behavior is chosen per query rather than fixed when the index is built.
- Search modes: full text, vector, or hybrid, selected by a mode option on the search call.
- Relevance controls: BM25 scoring, field boosting, typo tolerance, exact match, and pinning rules for merchandising.
- Result shaping: filters, facets, and geosearch narrow and group what comes back.
- Language coverage: stemming and tokenization in thirty languages.
- Answer sessions: an answer engine takes a term, applies a system prompt, and returns a generated reply with state change events for updating a UI.
A plugin system extends the core, with official plugins for generating embeddings at insert time, secure proxying, analytics, data persistence, and alternative scoring algorithms, plus documentation search integrations for VitePress, Docusaurus, Astro, and Nextra. Writing your own plugin is documented. Orama is licensed under Apache 2.0.
Stars
10,547Forks
401Last commit
1 month agoRepository age
4 yearsVersion
3.1.18Repository
oramasearch/orama
Auto-fetched from GitHub .
Open source alternatives similar to Orama:
Stars
Forks
Last commit
Stars
Forks
Last commit
Stars
Forks
Last commit