Top-level search index with permission-based filtering.
SearchIndex is the main entry point for permission-aware RAG operations. It combines:
- Collection hierarchy management
- User/group principal mapping
- Permission-filtered vector search
- Document ingestion with access control
Query flow:
- Resolve accessible collection IDs based on pattern + user authorization
- Perform vector search within those collections
- Apply document-level permission filtering (readable_by)
- Return permission-filtered results
Attributes
- Companion
- object
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
class PgSearchIndex
Members list
Value members
Abstract methods
Delete all documents in a collection.
Delete all documents in a collection.
Does not delete the collection itself.
Value parameters
- collectionPath
-
The collection to clear
Attributes
- Returns
-
Number of chunks deleted
Close the search index and release resources.
Close the search index and release resources.
Attributes
Access to collection management
Access to collection management
Attributes
Delete a document from a collection.
Delete a document from a collection.
Removes all chunks associated with the document.
Value parameters
- collectionPath
-
The collection containing the document
- documentId
-
The document identifier
Attributes
- Returns
-
Number of chunks deleted
Drop the permission schema.
Drop the permission schema.
WARNING: This is destructive and will delete all permission data. Only use for testing or complete reset.
Attributes
- Returns
-
Success or error
Ingest a document into a specific collection.
Ingest a document into a specific collection.
The collection must:
- Exist (call ensureExists first if needed)
- Be a leaf collection (can contain documents)
Value parameters
- chunks
-
Pre-chunked content with embeddings
- collectionPath
-
Target collection path
- documentId
-
Unique document identifier
- metadata
-
Document metadata
- readableBy
-
Document-level permission override (empty = inherit from collection)
Attributes
- Returns
-
Number of chunks indexed
Initialize the permission schema.
Initialize the permission schema.
Creates necessary tables and indexes if they don't exist. Safe to call multiple times (idempotent).
Attributes
- Returns
-
Success or error
Access to principal (user/group) management
Access to principal (user/group) management
Attributes
Main query method with permission filtering.
Main query method with permission filtering.
Performs a two-stage permission filter:
- Collection-level: Only search collections the user can access
- Document-level: Only return documents the user can read
Value parameters
- additionalFilter
-
Optional additional metadata filter
- auth
-
User authorization context
- collectionPattern
-
Pattern to filter collections (e.g., confluence/STAR)
- queryVector
-
Embedding vector for semantic search
- topK
-
Maximum number of results to return
Attributes
- Returns
-
Permission-filtered search results
Concrete methods
Query with a text query (for hybrid search).
Query with a text query (for hybrid search).
Value parameters
- additionalFilter
-
Optional additional metadata filter
- auth
-
User authorization context
- collectionPattern
-
Pattern to filter collections
- queryText
-
Text for keyword search (optional)
- queryVector
-
Embedding vector for semantic search
- topK
-
Maximum number of results
Attributes
- Returns
-
Permission-filtered search results
Get statistics for a collection.
Get statistics for a collection.
Value parameters
- collectionPath
-
The collection path
Attributes
- Returns
-
Collection statistics