@karmaniverous/jeeves-watcher
    Preparing search index...

    Interface VectorStore

    Abstract interface for vector store operations.

    Enables dependency inversion and easier testing.

    interface VectorStore {
        count(filter?: Record<string, unknown>): Promise<number>;
        delete(ids: string[]): Promise<void>;
        ensureCollection(): Promise<void>;
        ensureTextIndex(fieldName: string): Promise<void>;
        getCollectionInfo(): Promise<CollectionInfo>;
        getPayload(id: string): Promise<Record<string, unknown> | null>;
        getPointsWithVectors(ids: string[]): Promise<VectorPoint[]>;
        hybridSearch(
            vector: number[],
            queryText: string,
            limit: number,
            textWeight: number,
            filter?: Record<string, unknown>,
        ): Promise<SearchResult[]>;
        scroll(
            filter?: Record<string, unknown>,
            limit?: number,
        ): AsyncGenerator<ScrolledPoint>;
        scrollPage(
            filter?: Record<string, unknown>,
            limit?: number,
            offset?: string | number,
            fields?: string[],
        ): Promise<ScrollPageResult>;
        search(
            vector: number[],
            limit: number,
            filter?: Record<string, unknown>,
            offset?: number,
        ): Promise<SearchResult[]>;
        setPayload(ids: string[], payload: Record<string, unknown>): Promise<void>;
        upsert(points: VectorPoint[]): Promise<void>;
    }

    Implemented by

    Index

    Methods

    • Hybrid search combining dense vector and full-text match with RRF fusion.

      Parameters

      • vector: number[]

        The query vector.

      • queryText: string

        The raw query text for full-text matching.

      • limit: number

        Maximum results to return.

      • textWeight: number

        Weight for text results in RRF (0–1).

      • Optionalfilter: Record<string, unknown>

        Optional Qdrant filter.

      Returns Promise<SearchResult[]>

      An array of search results.

    • Scroll one page of points matching a filter.

      Parameters

      • Optionalfilter: Record<string, unknown>

        Optional Qdrant filter.

      • Optionallimit: number

        Page size.

      • Optionaloffset: string | number

        Cursor offset from previous page.

      • Optionalfields: string[]

        Optional field projection.

      Returns Promise<ScrollPageResult>

      Page of points and next cursor.

    • Search for similar vectors.

      Parameters

      • vector: number[]

        The query vector.

      • limit: number

        Maximum results to return.

      • Optionalfilter: Record<string, unknown>

        Optional Qdrant filter.

      • Optionaloffset: number

        Optional result offset.

      Returns Promise<SearchResult[]>

      An array of search results.