Full-Text Search
PostgreSQL-powered full-text search with automatic GIN indexing, ranked results, and fuzzy matching. Enable search on any text field and get relevant results instantly.
Search That Actually Works
Most backends punt on search. Baasix makes it a first-class feature.
Enable full-text search on any text field with a single schema option. Baasix automatically creates GIN indexes, configures text search dictionaries, and provides ranked results through the API. PostgreSQL's powerful full-text search handles natural language queries, stemming, and relevance ranking out of the box.
- Full-text search across multiple fields with relevance ranking
- Automatic GIN index creation for optimal search performance
- Fuzzy matching handles typos and partial words
- Multi-language support with proper stemming per locale
- Search results sorted by relevance score
- Phrase matching for exact multi-word queries
- Prefix matching for autocomplete functionality
- Stop words handled automatically per language
Full-Text Search API
Search across multiple fields with a single parameter.
GET /api/items/products
?search=wireless bluetooth headphones
&searchFields=name,description,tags
&sort=relevance:desc
&limit=20Searches name, description, and tags fields. Results are ranked by relevance with matching terms highlighted.
Skip the Elasticsearch Complexity
Get powerful search without dedicated search infrastructure.
✓ With Baasix
- Full-text search built into PostgreSQL
- Automatic index management
- Single API for search and data queries
- No additional services to manage
- Results include relevance scores
✗ Traditional Approach
- Deploy and manage Elasticsearch cluster
- Build sync pipelines to keep data in sync
- Different APIs for search vs database queries
- Monitor separate search infrastructure
- Configure analyzers and mappings manually
Search Capabilities
Full-Text Search
PostgreSQL ts_vector powered search with stemming, stop words, and relevance ranking. Handles natural language queries intelligently.
Multi-Language
Support for 25+ languages with proper stemming, stop words, and language-specific text processing.
Fuzzy Matching
Handle typos and misspellings with trigram similarity. Find 'bluetoth' when searching for 'bluetooth'.
Relevance Ranking
Results ordered by relevance using PostgreSQL's ts_rank. Boost specific fields for better ranking control.
Auto GIN Indexes
Baasix creates GIN indexes automatically when you enable search. No manual index configuration needed.
Phrase Search
Search for exact phrases with quoted queries. Find 'wireless headphones' as a phrase, not just individual words.
Search Powers Every Application
From simple autocomplete to complex faceted search, Baasix handles it all.
E-commerce Search
Product search with facets (brand, price range, ratings), type-ahead suggestions, and category filtering. Handle millions of products efficiently.
Content Discovery
Search articles, documents, and media by content, tags, and metadata. Support multiple languages with proper stemming per locale.
User & Entity Search
Find users by name, email, or profile fields. Search customers, contacts, or any entity with complex criteria combinations.
Log & Event Search
Query structured logs and events with time ranges, severity filters, and full-text content search. Debug faster with powerful queries.
Search FAQ
How does relevance ranking work?
Baasix uses PostgreSQL ts_rank for relevance scoring. Results are ranked by term frequency, position, and proximity. You can boost specific fields by weight.
Can I search across multiple collections?
Currently, full-text search works within a single collection. For cross-collection search, query each collection and merge results in your application, or use a workflow to create a unified search index.
How do I handle misspellings?
PostgreSQL full-text search includes fuzzy matching for common misspellings. For advanced fuzzy search, enable trigram similarity with pg_trgm — Baasix supports it via the similarity operator.
What languages are supported?
PostgreSQL supports 25+ languages including English, Spanish, French, German, Portuguese, Russian, Chinese, Japanese, and more. Each language has proper stemming and stop word handling.
Ready to build faster?
Join developers who are shipping production-ready backends in hours, not weeks.