问答记录
pgvector 语义搜索时 embedding 字段为 NULL 的过滤策略
创建于 2026/7/15更新于 2026/7/15
pgvector
Semantic Search
PostgreSQL
踩坑
## 问题描述 当 knowledge 记录的 embedding 字段为 NULL 时,执行向量相似度查询会返回错误或意外结果。 ## 根本原因 pgvector 的 <=> 运算符无法处理 NULL 值。 ## 解决方案 在 $queryRaw 中添加 embedding IS NOT NULL 条件过滤: ```sql SELECT *, 1 - (embedding <=> ${queryEmbedding}::vector) as similarity FROM "knowledge" WHERE embedding IS NOT NULL AND 1 - (embedding <=> ${queryEmbedding}::vector) >= ${threshold} ORDER BY embedding <=> ${queryEmbedding}::vector LIMIT ${limit} ```
关联知识资产
QA
资产 ID: 73e083c8-a2af-4170-a054-c7be5a5655b2