DBMS_HYBRID_SEARCH.SEARCH 混合搜索时向量过滤条件字段是JSON 元数据字段如何处理

【 使用环境 】 测试环境
【 使用版本 】 5.7.25-OceanBase SeekDB-v1.0.1.0
【问题描述】

1054 - Unknown column 'metadata.type' in 'where clause'

【复现路径】问题出现前后相关操作

您好,OceanBase 的各位工程师:

目前我们正在进行向量数据库选型迁移,计划从 pgvector 方案切换至 OceanBase 的 SeekDB 向量库

在实际使用过程中,我们希望实现 混合搜索(Hybrid Search) 场景下的能力:

  • 通过向量检索完成语义相似召回
  • 同时支持对记录中的 metadata 元数据字段进行条件过滤(例如 type=function、业务标签、来源等)

目前我们的表结构(DDL)如下,想咨询一下:

在 OceanBase SeekDB 的 DBMS_HYBRID_SEARCH.SEARCH 使用过程中,是否支持在向量检索的同时,对 JSON 格式的 metadata 字段进行过滤?

如果支持,推荐的实现方式或语法应如何编写?

感谢各位老师的支持与指导!

SELECT
    DBMS_HYBRID_SEARCH.SEARCH('ai_biz_embed_collection', CAST('{
  "query" : {
    "bool" : {
      "must" : [ {
        "query_string" : {
          "fields" : [ "text" ],
          "query" : "(创建用户)帮我创建一个系统用户"
        }
      } ]
    }
  },
  "knn" : {
    "field" : "embedding",
    "k" : 1,
"filter" : [
        {"term" : {"metadata.type": "funciton"} }
    ],
    "query_vector" : [ ]
  }
}' AS JSON))

这个问题在seekdb 1.1.0 版本得到了修复。预计在 1月 30号 发布这个版本。

好的感谢