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

ruby-on-rails – pg_search gem和全文搜索排名设置

发布时间:2020-12-16 21:07:50 所属栏目:百科 来源:网络整理
导读:我使用gem pg_search在我的postgres db上执行全文搜索. 我的范围是这样的: pg_search_scope :fulltext,against: [:firstname,:lastname,:middlename],using: { tsearch: { prefix: true },trigram: { :threshold = 0.2 } } 当我使用字符串gro搜索时,我希望
我使用gem pg_search在我的postgres db上执行全文搜索.
我的范围是这样的:
pg_search_scope :fulltext,against: [:firstname,:lastname,:middlename],using: {
                  tsearch: { prefix: true },trigram: {
                      :threshold => 0.2
                    }
                  }

当我使用字符串gro搜索时,我希望与完全单词gro匹配的记录的排名高于匹配像group(group contains gro)这样的单词的记录.

任何想法,如果有一些设置来做到这一点?

解决方法

我在Django中有一个非常相似的情况,我解决了总结三元组相似性和tsearch排名.

与完全匹配的单词的相似性高于部分匹配,因为您可以检查PostgresSQL:

SELECT similarity('gro','gro') AS exact,similarity('gro','group') AS partial;
 exact | partial  
-------+----------
     1 | 0.428571

我不是ruby专家,但我已经阅读了pg_search文档,我认为你的问题的解决方案应该与此类似:

pg_search_scope :fulltext,trigram: {
                      :threshold => 0.2
                  }
                },:ranked_by => ":tsearch + :trigram"

(编辑:李大同)

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

    推荐文章
      热点阅读