Skip to main content

Search System

The Platform Search System provides a unified global search experience across all entity types (Datasets, Checks, Workflows, Issues) within the platform, with support for keyword, semantic, and hybrid search modes.

Architecture

1. Unified Indexing

Search is not just a database query; it involves a specialized indexing strategy.

  • SearchService: Orchestrates queries across multiple domains.
  • Optimization: We use optimized SQL queries (potentially leveraging Full Text Search features of PostgreSQL) to retrieve results efficiently.
  • Embeddings: Products are vectorized via EmbeddingService (local sentence-transformers by default, or OpenAI) for semantic similarity search.

2. Search Modes

The API accepts a mode query parameter:

ModeStrategy
auto(default) Keyword search + semantic results when embeddings are available
keywordElasticsearch / PostgreSQL full-text only
semanticVector-similarity (cosine) using pre-computed embeddings

3. Keyboard Navigation (Cmd+K)

The frontend implements a "Command Palette" pattern.

  • Global Listener: Listens for Cmd+K (or Ctrl+K) to open the search modal.
  • Context Aware: The search can theoretically benefit from context (e.g., current space), but primarily functions as a global discovery tool.

Multi-Entity Discovery

The search result model is polymorphic.

  • Results: A list of SearchResult objects.
  • Type Discrimination: Each result includes a type field (e.g., dataset, quality_check, workflow) to separate rendering logic in the UI.

Clicking a result uses the Standard #330-ContextLink pattern to ensure the user is navigated to the correct location, preserving necessary context (like the active tab or filter settings).