2025-06-18 11:48:20 +00:00
|
|
|
SELECT
|
|
|
|
|
paragraph_id,
|
|
|
|
|
comprehensive_score,
|
|
|
|
|
comprehensive_score AS similarity
|
|
|
|
|
FROM
|
|
|
|
|
(
|
|
|
|
|
SELECT DISTINCT ON
|
2025-10-14 04:01:15 +00:00
|
|
|
( "paragraph_id" ) ( 1 - distance + ts_similarity ) as similarity, *,
|
|
|
|
|
(1 - distance + ts_similarity) AS comprehensive_score
|
2025-06-18 11:48:20 +00:00
|
|
|
FROM
|
|
|
|
|
(
|
|
|
|
|
SELECT
|
|
|
|
|
*,
|
2025-10-14 04:01:15 +00:00
|
|
|
(embedding.embedding::vector(%s) <=> %s) as distance,
|
2025-07-24 08:18:11 +00:00
|
|
|
(ts_rank_cd( embedding.search_vector, websearch_to_tsquery('simple', %s ), 32 )) AS ts_similarity
|
2025-06-18 11:48:20 +00:00
|
|
|
FROM
|
|
|
|
|
embedding ${embedding_query}
|
2025-10-14 04:01:15 +00:00
|
|
|
ORDER BY distance
|
2025-06-18 11:48:20 +00:00
|
|
|
) TEMP
|
|
|
|
|
ORDER BY
|
|
|
|
|
paragraph_id,
|
|
|
|
|
similarity DESC
|
|
|
|
|
) DISTINCT_TEMP
|
|
|
|
|
WHERE
|
|
|
|
|
comprehensive_score >%s
|
|
|
|
|
ORDER BY
|
|
|
|
|
comprehensive_score DESC
|
|
|
|
|
LIMIT %s
|