【 使用环境 】 测试环境
【 使用版本 】 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))
