在PostgreSQL中对子字符串进行全文搜索

时间:2015-05-15 06:27:27

标签: postgresql

我试图在文本搜索的基础上使用to_tsquery()从数据库中检索数据。我能够获得完整单词搜索的结果,但不能获得子字符串。

示例:

SELECT * FROM snp_gene_context
WHERE protein_name @@ to_tsquery('english','KIN') AND gene_dist='0';

我能够获得包含单词' KIN11'的行。但是我无法获得包含' Kinase'。

的行

1 个答案:

答案 0 :(得分:2)

全文搜索不适用于子字符串 - 只有单词。

对于索引子字符串搜索,您需要使用pg_trgm扩展名。那是good article about faster like/ilike searches using pg_trgm on select * from depesz blog。然而,这是一种交易 - 写得慢得多。