【发布时间】:2018-09-02 22:49:17
【问题描述】:
我在 Rails 5 应用程序中为 Postgres 使用 Trigram 模块 (pg_trgm) 进行文本搜索。我已经能够使用以下调用成功找到满意的结果,以查找名称与 查询 相似的 limit 条记录:
def self.glance(query, limit = 10)
find_by_sql(['select *, name <-> ? as confidence from studies order by confidence limit ?', query, limit])
end
我现在想扩展结果以包括每条记录的 similarity 函数的值和用于显示的目标 query。
我相信我应该设置一个范围(或类方法),我可以在其中对距离运算符(名称 ?)进行参数化调用,然后返回值,就好像它是数据库模型。
我可以就执行此操作的最佳做法提出建议吗?谢谢。
【问题讨论】:
标签: ruby-on-rails postgresql pg-trgm