您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

PostgreSQL与全文搜索完全匹配

PostgreSQL与全文搜索完全匹配

考虑到Postgresql使用的英语词干分析器不会阻止比较词和最高级词(我必须认为这是设计使然,而不仅仅是错误),所以在Postgresql中没有合理的方法可以做到这一点。

select to_tsvector('english','funny funnier funniest big bigger biggest');
                            to_tsvector                            
-------------------------------------------------------------------
 'big':4 'bigger':5 'biggest':6 'funni':1 'funnier':2 'funniest':3

但是,如果您安装english_hunspell词典(本身并不琐碎),那么您可以更接近所需的内容,至少对于您给出的一个示例。

create text search configuration english_hun (copy = english);
ALTER TEXT SEARCH CONfigURATION english_hun alter mapping replace english_stem with english_hunspell;
select to_tsvector('english_hun','funny funnier funniest big bigger biggest');
                 to_tsvector                  
----------------------------------------------
 'big':4 'bigger':5 'biggest':6 'funny':1,2,3

最常见的介词已经是停用词,但不是全部,因此您可能需要调整停用词列表。

完成常规匹配(@@)之后,您可以添加AND条件,以确保tsvector和tsquery的长度相同。这将与“有趣的狗逗”相匹配,无论您是否想要,我都不清楚。

SQLServer 2022/1/1 18:53:28 有519人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶