BaseStore 接口的 PostgreSQL 实现。这现在是一个轻量级的协调器,它会委托给专门的模块。

层级结构 (查看完整)

构造函数

方法

  • 通过命名空间和键删除一个项目。

    参数

    • namespace: string[]
    • key: string

    返回 Promise<void>

  • 通过命名空间和键获取一个项目。

    参数

    • namespace: string[]
    • key: string

    返回 Promise<null | Item>

  • 获取有关存储的统计信息。

    返回 Promise<{
        expiredItems: number;
        namespaceCount: number;
        newestItem: null | Date;
        oldestItem: null | Date;
        totalItems: number;
    }>

  • 执行结合了向量相似性和文本搜索的混合搜索。

    参数

    • namespacePrefix: string[]

      要搜索的命名空间前缀

    • query: string

      要搜索的文本查询

    • 可选 options: {
          filter?: Record<string, unknown>;
          limit?: number;
          offset?: number;
          similarityThreshold?: number;
          vectorWeight?: number;
      }

      搜索选项,包括筛选器、向量权重和相似度阈值

      • 可选 filter?: Record<string, unknown>
      • 可选 limit?: number
      • 可选 offset?: number
      • 可选 similarityThreshold?: number
      • 可选 vectorWeight?: number

    返回 Promise<SearchItem[]>

    解析为一个包含组合相似度分数的搜索结果数组的 Promise

  • 列出命名空间,可进行可选筛选。

    参数

    • 可选 options: {
          limit?: number;
          maxDepth?: number;
          offset?: number;
          prefix?: string[];
          suffix?: string[];
      }
      • 可选 limit?: number
      • 可选 maxDepth?: number
      • 可选 offset?: number
      • 可选 prefix?: string[]
      • 可选 suffix?: string[]

    返回 Promise<string[][]>

  • 放入一个项目,带有可选的索引配置和 TTL。

    参数

    • namespace: string[]
    • key: string
    • value: Record<string, unknown>
    • 可选 index: false | string[]
    • 可选 options: {
          ttl?: number;
      }
      • 可选 ttl?: number

    返回 Promise<void>

  • 在存储中搜索项目,支持文本搜索、向量搜索和筛选。

    参数

    • namespacePrefix: string[]

      要搜索的命名空间前缀

    • 可选 options: {
          distanceMetric?: "cosine" | "l2" | "inner_product";
          filter?: Record<string, null | string | number | boolean | FilterOperators>;
          limit?: number;
          mode?: "text" | "vector" | "hybrid" | "auto";
          offset?: number;
          query?: string;
          refreshTtl?: boolean;
          similarityThreshold?: number;
          vectorWeight?: number;
      }

      搜索选项,包括搜索模式、筛选器、查询文本和分页

      • 可选 distanceMetric?: "cosine" | "l2" | "inner_product"

        向量搜索的距离度量。

        默认值

        "cosine"
        
      • 可选 filter?: Record<string, null | string | number | boolean | FilterOperators>

        支持高级运算符的筛选条件。

      • 可选 limit?: number

        要返回的最大结果数。

        默认值

        10
        
      • 可选 mode?: "text" | "vector" | "hybrid" | "auto"

        搜索模式。

        默认值

        "auto"
        
      • 可选 offset?: number

        用于分页的要跳过的结果数。

        默认值

        0
        
      • 可选 query?: string

        自然语言搜索查询。

      • 可选 refreshTtl?: boolean

        是否刷新返回项目的 TTL。

      • 可选 similarityThreshold?: number

        向量搜索的相似度阈值。

      • 可选 vectorWeight?: number

        混合模式下向量搜索的权重。

        默认值

        0.7
        

    返回 Promise<SearchItem[]>

    解析为一个包含搜索结果数组的 Promise,带有可选的相似度分数

    示例

    // Basic text search
    const results = await store.search(["documents"], {
    query: "machine learning",
    mode: "text"
    });

    // Vector search
    const results = await store.search(["documents"], {
    query: "machine learning",
    mode: "vector",
    similarityThreshold: 0.7
    });

    // Hybrid search (combining vector and text)
    const results = await store.search(["documents"], {
    query: "machine learning",
    mode: "hybrid",
    vectorWeight: 0.7
    });

    // Filtered search
    const results = await store.search(["products"], {
    filter: { category: "electronics", price: { $lt: 100 } }
    });
  • 通过运行迁移来创建必要的表和索引,以初始化存储。

    返回 Promise<void>

  • 启动存储。如果 ensureTables 为 true,则调用 setup()。

    返回 Promise<void>

  • 停止存储并关闭所有数据库连接。

    返回 Promise<void>

  • 手动从存储中清除过期的项目。

    返回 Promise<number>

  • 使用嵌入进行向量相似性搜索。

    参数

    • namespacePrefix: string[]

      要搜索的命名空间前缀

    • query: string

      用于嵌入和搜索相似项目的文本查询

    • 可选 options: {
          distanceMetric?: "cosine" | "l2" | "inner_product";
          filter?: Record<string, unknown>;
          limit?: number;
          offset?: number;
          similarityThreshold?: number;
      }

      搜索选项,包括筛选器、相似度阈值和距离度量

      • 可选 distanceMetric?: "cosine" | "l2" | "inner_product"
      • 可选 filter?: Record<string, unknown>
      • 可选 limit?: number
      • 可选 offset?: number
      • 可选 similarityThreshold?: number

    返回 Promise<SearchItem[]>

    解析为一个包含相似度分数的搜索结果数组的 Promise

  • 从连接字符串创建一个 PostgresStore 实例。

    参数

    返回 PostgresStore