# Orama

> Open-source TypeScript search engine and RAG pipeline offering full-text, vector, and hybrid search in the browser, server, or edge.

Orama is an open-source, zero-dependency search engine written in TypeScript and developed by OramaSearch Inc. It runs in any JavaScript runtime and supports full-text, vector, and hybrid search, with an answer engine for chat-style experiences. The project describes itself as a complete search engine and RAG pipeline in less than 2kb.

## What It Is

Orama is a JavaScript library installed through a package manager (for example `npm install @orama/orama`) or imported directly as a browser module from a CDN. Deno is supported via npm specifiers. A JavaScript runtime is the only requirement.

Developers create a database instance with a typed schema, insert documents, and query them with `search`. Schemas support string, number, boolean, enum, geopoint, array types, and fixed-size vectors for embeddings.

## Search Capabilities

The documentation lists full-text search with BM25, typo tolerance, exact match, filters, facets, field boosting, geosearch, and results pinning (merchandising). Vector and hybrid search are selected through a `mode` option, and the caller supplies embeddings at search time. Stemming and tokenization are available in 30 languages, with dedicated guides for Chinese and Japanese.

## RAG, Chat, and Plugins

Since v3.0.0, Orama provides `AnswerSession` for building ChatGPT-style answer experiences over indexed data. A Secure Proxy plugin lets client-side code call OpenAI securely. An embeddings plugin can generate vectors at insert and search time using TensorFlow.js.

Official plugins also cover analytics, data persistence, QPS, PT15, and documentation-site integrations for Vitepress, Docusaurus, Astro, and Nextra. A plugin system allows custom plugins.

## Setup Path

Orama ships ESM modules by default and still supports CommonJS. TypeScript projects should set `moduleResolution` to `Node16` or `NodeNext`. The repository is licensed under Apache 2.0 according to the README.

## Features
- Full-text search
- Vector search
- Hybrid search
- GenAI chat sessions (answer engine)
- Search filters
- Geosearch
- Results pinning (merchandising)
- Facets
- Field boosting
- Typo tolerance
- Exact match
- BM25 ranking
- Stemming and tokenization in 30 languages
- Plugin system
- Zero dependencies

## Integrations
OpenAI, TensorFlow.js, Vitepress, Docusaurus, Astro, Nextra, Deno

## Platforms
WEB, API, DEVELOPER_SDK

## Pricing
Open Source

## Version
v3.1.18

## Links
- Website: https://docs.orama.com/docs/orama-js
- Documentation: https://docs.orama.com/docs/orama-js
- Repository: https://github.com/oramasearch/orama
- EveryDev.ai: https://www.everydev.ai/tools/orama
