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

使用PostgreSQL找到流行的字符串

使用PostgreSQL找到流行的字符串

没有现成的Posgres文本搜索功能可以找到最受欢迎的短语。对于两个单词的短语,您可以ts_stat()用来查找最流行的单词,消除质点,介词等,并将这些单词交叉连接以查找最流行的单词对。

对于实际数据,您需要更改标记--> parameter.的值。对于较大的数据集,查询可能会非常昂贵。

with popular_words as (
    select word
    from ts_stat('select value::tsvector from a')
    where nentry > 1                                --> parameter
    and not word in ('to', 'the', 'at', 'in', 'a')  --> parameter
)
select concat_ws(' ', a1.word, a2.word) phrase, count(*) 
from popular_words as a1
cross join popular_words as a2
cross join a
where value ilike format('%%%s %s%%', a1.word, a2.word)
group by 1
having count(*) > 1                                 --> parameter
order by 2 desc;


        phrase         | count 
-----------------------+-------
 movie theater         |     3
 learning disabilities |     2
(2 rows)
SQLServer 2022/1/1 18:47:04 有526人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

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

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

请先登录

推荐问题


联系我
置顶