过滤 + 向量排序
过滤 + 向量排序
SELECT c.id, c.content
FROM kb_chunks c
JOIN kb_docs d ON d.id = c.doc_id
WHERE d.status = 'published'
AND d.updated_at >= now() - interval '90 days'
ORDER BY c.embedding <=> $1
LIMIT 10;全文检索 + 向量两段式
全文检索 + 向量两段式
WITH kw AS (
SELECT id FROM kb_chunks
WHERE to_tsvector('simple', content) @@ plainto_tsquery('simple', $2)
LIMIT 50
)
SELECT c.id FROM kb_chunks c
WHERE c.id IN (SELECT id FROM kw)
ORDER BY c.embedding <=> $1 LIMIT 10;过滤条件的选择性决定执行计划:高选择性过滤先行、再向量排序通常更划算。