Pio*_*ioz 5 postgresql full-text-search ruby-on-rails pg-search
我使用gem pg_search在我的postgres db上执行全文搜索.我的范围是这样的:
pg_search_scope :fulltext, against: [:firstname, :lastname, :middlename],
using: {
tsearch: { prefix: true },
trigram: {
:threshold => 0.2
}
}
Run Code Online (Sandbox Code Playgroud)
当我用字符串搜索GRO我想那场比赛完全相同字的记录GRO有秩比相匹配的话,像记录高组(组包含GRO).
任何想法,如果有一些设置来做到这一点?
我在 Django 中遇到了非常相似的情况,我解决了总结三元组相似度和 tsearch 排名的问题。
完全匹配的单词的相似度高于部分匹配,您可以在 PostgresSQL 上检查:
SELECT similarity('gro', 'gro') AS exact, similarity('gro', 'group') AS partial;
exact | partial
-------+----------
1 | 0.428571
Run Code Online (Sandbox Code Playgroud)
我不是红宝石专家,但我已经阅读了pg_search文档,我认为您问题的解决方案应该与此类似:
pg_search_scope :fulltext,
against: [:firstname, :lastname, :middlename],
using: {
tsearch: { prefix: true },
trigram: {
:threshold => 0.2
}
},
:ranked_by => ":tsearch + :trigram"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
429 次 |
| 最近记录: |