blend_search.sql 627 B

12345678910111213141516171819202122232425262728
  1. SELECT
  2. paragraph_id,
  3. comprehensive_score,
  4. comprehensive_score AS similarity
  5. FROM
  6. (
  7. SELECT DISTINCT ON
  8. ( "paragraph_id" ) ( 1 - distance + ts_similarity ) as similarity, *,
  9. (1 - distance + ts_similarity) AS comprehensive_score
  10. FROM
  11. (
  12. SELECT
  13. *,
  14. (embedding.embedding::vector(%s) <=> %s) as distance,
  15. (ts_rank_cd( embedding.search_vector, websearch_to_tsquery('simple', %s ), 32 )) AS ts_similarity
  16. FROM
  17. embedding ${embedding_query}
  18. ORDER BY distance
  19. ) TEMP
  20. ORDER BY
  21. paragraph_id,
  22. similarity DESC
  23. ) DISTINCT_TEMP
  24. WHERE
  25. comprehensive_score >%s
  26. ORDER BY
  27. comprehensive_score DESC
  28. LIMIT %s