加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Postgresql前缀通配符全文

发布时间:2020-12-13 16:27:47 所属栏目:百科 来源:网络整理
导读:我试图使用 Postgresql运行一个全文查询,可以使用通配符来满足部分匹配. 在搜索字词后面有一个后缀通配符似乎很简单,但是我无法弄清楚如何指定一个前缀通配符. 例如,我可以使用类似的东西来轻松地执行后缀搜索 SELECT "t1".* FROM "t1" WHERE (to_tsvector('
我试图使用 Postgresql运行一个全文查询,可以使用通配符来满足部分匹配.

在搜索字词后面有一个后缀通配符似乎很简单,但是我无法弄清楚如何指定一个前缀通配符.

例如,我可以使用类似的东西来轻松地执行后缀搜索

SELECT "t1".* 
FROM "t1" 
WHERE (to_tsvector('simple',"t1"."city") @@ to_tsquery('simple','don:*') )

应该返回结果匹配“伦敦”

但是我似乎没有做一个前缀搜索…

SELECT "t1".* 
FROM "t1" 
WHERE (to_tsvector('simple',':*don') )

理想情况下,我想在通配符前面加上搜索字词的前端和末尾,类似…

SELECT "t1".* 
FROM "t1" 
WHERE (to_tsvector('simple',':*don:*') )

我可以使用一个喜欢的条件,但我希望受益于Postgres中全文搜索功能的表现.

全文搜索对于查找单词而非子字符串很有用.

对于子字符串搜索,您最好使用像’%don%’与pg_trgm扩展可用PostgreSQL 9.1和使用gin(column_name gin_trgm_ops)或使用gist(column_name gist_trgm_ops)索引.但是你的索引会很大(甚至比你的表大几倍),并且写性能不是很好.

select * from depesz blog有very good example of using pg_trgm for substring search.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读