有一个像这样的 postgre 查询
cursor.execute(
"SELECT text FROM tbl_embeddings ORDER BY embedding <=> %s::vector LIMIT 1;",
(get_embedding(txt),),
)
我在 postgre 中存储了一些嵌入向量,在这里我正在执行一个查询来进行余弦相似度搜索。如何从查询中获取相似度分数?
谢谢
要在执行余弦相似度搜索时从 PostgreSQL 查询中获取相似度分数,您可以使用 pg_similarity 扩展,它提供了余弦相似度函数。您需要安装此扩展并在查询中使用其功能。如果尚未安装 pg_similarity 扩展,请像这样修改您的查询:
cursor.execute(
"""
SELECT
text,
COS_TEXT(text_vector, %s::vector) AS similarity_score
FROM
tbl_embeddings
ORDER BY
text_vector <=> %s::vector
LIMIT 1;
""",
(get_embedding(txt), get_embedding(txt)),
)
希望有帮助:)