graphile-searchlisted
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