Why Orama?
Orama stands out as a complete search solution that combines simplicity with powerful features:- Blazing fast - Search results in microseconds, not milliseconds
- Incredibly small - Less than 2kb gzipped
- Zero dependencies - No external dependencies required
- Universal - Works in browsers, Node.js, Deno, Bun, and edge runtimes
- Type-safe - Full TypeScript support with intelligent autocompletion
- Flexible - Support for full-text, vector, and hybrid search modes
Quickstart
Get started with Orama in under 5 minutes
Installation
Install Orama with your favorite package manager
Full-text search
Build powerful full-text search with typo tolerance
Vector search
Implement semantic search with embeddings
Hybrid search
Combine full-text and vector search for best results
Answer engine
Build ChatGPT-like experiences with RAG
Key features
Orama is packed with features that make it the perfect choice for building modern search experiences:Search capabilities
- Full-text search - Fast, typo-tolerant full-text search across all your content
- Vector search - Semantic search using embeddings for AI-powered results
- Hybrid search - Combine full-text and vector search for optimal relevance
- Geosearch - Location-based search with distance calculations
- Faceted search - Filter and facet your search results
- Search filters - Advanced filtering capabilities
Relevance tuning
- BM25 algorithm - Industry-standard relevance scoring
- Fields boosting - Prioritize specific fields in search results
- Typo tolerance - Find results even with spelling mistakes
- Exact match - Support for exact phrase matching
- Pinning rules - Merchandising and results promotion
Developer experience
- Plugin system - Extend Orama with official and custom plugins
- Stemming in 30 languages - Multi-language support out of the box
- Data persistence - Save and restore your search index
- Analytics - Track search behavior and performance
- GenAI integration - Build RAG applications with OpenAI and other LLMs
Supported data types
Orama supports 10 different data types for maximum flexibility:| Type | Description | Example |
|---|---|---|
string | A string of characters | 'Hello world' |
number | A numeric value, float or integer | 42 |
boolean | A boolean value | true |
enum | An enum value | 'drama' |
geopoint | A geographic coordinate | { lat: 40.7128, lon: 74.0060 } |
string[] | An array of strings | ['red', 'green', 'blue'] |
number[] | An array of numbers | [42, 91, 28.5] |
boolean[] | An array of booleans | [true, false, false] |
enum[] | An array of enums | ['comedy', 'action', 'romance'] |
vector[<size>] | A vector for semantic search | [0.403, 0.192, 0.830] |
Next steps
Get started
Follow our quickstart guide to build your first search application
Explore plugins
Discover official plugins for embeddings, analytics, and more