← ClaudeAtlas

graphile-searchlisted

Unified PostGraphile v5 search plugin (graphile-search). Consolidates tsvector, BM25, pg_trgm, and pgvector into a single adapter-based architecture with composite searchScore and unifiedSearch fields. Includes codegen SDK query patterns for all search types. Use when asked to "add search to GraphQL", "expose search in PostGraphile", "configure search adapters", "query search via SDK/codegen", or when building search features on a Constructive or PostGraphile v5 stack.
constructive-io/constructive-skills · ★ 0 · AI & Automation · score 57
Install: claude install-skill constructive-io/constructive-skills
# Graphile Search — Unified Search Plugin A single PostGraphile v5 plugin that consolidates tsvector full-text search, BM25 ranked search, pg_trgm fuzzy matching, and pgvector similarity search behind a pluggable adapter architecture. **Package:** `graphile-search` ([npm](https://www.npmjs.com/package/graphile-search)) ## When to Apply Use this skill when: - Adding search capabilities to a PostGraphile v5 / Constructive GraphQL API - Configuring which search adapters are active - Understanding how search fields, filters, and scores appear in the GraphQL schema - Querying search-enabled tables via the generated SDK (after codegen) - Debugging missing search fields or unexpected trgm behavior - Building hybrid search combining multiple algorithms ## Architecture Overview Instead of separate plugins per algorithm, `graphile-search` uses a single `UnifiedSearchPlugin` with pluggable **adapters**: ``` UnifiedSearchPlugin ├── TsvectorAdapter (keyword search with stemming) ├── Bm25Adapter (relevance-ranked document search) ├── TrgmAdapter (fuzzy matching, typo tolerance) └── PgvectorAdapter (semantic/embedding similarity + chunk-aware RAG) ``` The pgvector adapter also supports **chunk-aware search** via the `@hasChunks` smart tag — transparently querying across parent and chunk embeddings and returning the minimum distance. See `references/pgvector-adapter.md` for details. Each adapter implements the `SearchAdapter` interface: - **`detectCol