| Metadata | Value |
|---|---|
| Status | Completed |
| Version | 1.0.0 |
| Last Updated | 2026-09-10 |
| Author | Sangeetha Grantha Team |
| Document Type | Current guide |
TRACK-108 implements thematic retrieval over canonical compositions and lyric passages using Gemini embeddings, PostgreSQL/pgvector, and lexical/vector rank fusion. It is available in the Curator Console through Lexical, Hybrid, and Semantic search modes. Rasika currently uses the public V2 catalogue rather than the vector endpoints.
| Layer | Delivered behavior | Source |
|---|---|---|
| Schema | Search documents, profile-bound embeddings, fixed 768-dimensional storage, HNSW/trigram indexes | V58 migration |
| Document construction | Composition overview and per-variant section passage with musicological metadata | Context formatter |
| Index maintenance | Direct/local-batch runners, content-hash checks, obsolete-document retirement, audit and profile activation | Shared index helpers |
| Query embedding | Provider query vector with model/dimension validation | GeminiEmbeddingClient |
| Retrieval | Published/admin scope, profile binding, cosine retrieval, RRF and composition-level deduplication | KrithiSearchRepository |
| API | POST /v1/search/hybrid, POST /v1/search/semantic |
Routes |
| Console | Search mode controls, ranked overview/passage cards and editor navigation | KrithiList |
The source migration replaces the earlier approximate SQL sketch in this report. It includes original/indexed text, document and embedding hashes, a model/dimensions/task-type profile key, and actual constraint names.
Indexing is not automatically triggered by an import or lyric edit. A profile with some vectors is not proof of full corpus coverage. Hybrid’s no-profile lexical fallback still searches search_documents; an entirely empty search index can return no matches despite a populated ordinary catalogue.
Model/dimension mismatch is an availability error. The backend query model uses the wired client defaults; changing a Python CLI model does not reconfigure the backend. The local batch runner does not use the provider’s asynchronous Batch API.
The index currently builds overview/passage text, not manuscript/media embeddings or conversational answers. Relevance scores are not scholarly validation.
Use September 8 validation, embedding execution report, and the track for recorded command results and dataset scope. This documentation refresh did not run provider-backed indexing or remeasure retrieval quality. Old counts/cost estimates are not current deployment measurements.