从 postgres 查询中获取相似度分数

问题描述 投票:0回答:1

有一个像这样的 postgre 查询

cursor.execute(
    "SELECT text FROM tbl_embeddings ORDER BY embedding <=> %s::vector LIMIT 1;",
    (get_embedding(txt),),
)

我在 postgre 中存储了一些嵌入向量,在这里我正在执行一个查询来进行余弦相似度搜索。如何从查询中获取相似度分数?

谢谢

postgresql embedding
1个回答
0
投票

要在执行余弦相似度搜索时从 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)),
)

希望有帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.