SELECT *, ts_rank(to_tsvector('english', content), to_tsquery('english', 'quick & fox')) AS rank FROM documents WHERE to_tsvector('english', content) @@ to_tsquery('english', 'quick & fox') ORDER BY rank DESC; 查询包含 quick 的 语句怎么写
要查询包含 "quick" 的语句,并使用 PostgreSQL 的全文搜索功能,你可以使用 to_tsquery
和 to_tsvector
函数。以下是一个示例查询,它会返回包含 "quick" 的文档,并按相关性排序:
SELECT *, ts_rank(to_tsvector('english', content), to_tsquery('english', 'quick')) AS rank
FROM documents
WHERE to_tsvector('english', content) @@ to_tsquery('english', 'quick')
ORDER BY rank DESC;
在这个查询中:
to_tsvector('english', content)
将 content
列转换为一个文本搜索向量。to_tsquery('english', 'quick')
创建一个文本搜索查询,查找包含 "quick" 的文档。ts_rank
函数计算每个文档的相关性得分。WHERE
子句过滤出包含 "quick" 的文档。ORDER BY rank DESC
按相关性得分从高到低排序结果。这样,你就可以查询包含 "quick" 的文档,并按相关性排序。