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.

Auto
GIN Indexing
Ranked
Search Results
Multi
Field Search
Any
Language

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=20

Searches 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.

ProductsFacetsAutocomplete

Content Discovery

Search articles, documents, and media by content, tags, and metadata. Support multiple languages with proper stemming per locale.

CMSDocumentsMulti-language

User & Entity Search

Find users by name, email, or profile fields. Search customers, contacts, or any entity with complex criteria combinations.

UsersCRMDirectory

Log & Event Search

Query structured logs and events with time ranges, severity filters, and full-text content search. Debug faster with powerful queries.

LogsEventsDebugging

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.