加速使用关联的pg_search中的查询

时间:2013-07-29 18:27:19

标签: ruby-on-rails ruby-on-rails-3 postgresql full-text-search pg-search

我有一个使用pg_search gem的Rails应用程序来利用PostgreSQL的全文搜索功能。

本手册介绍了如何搜索具有(例如)has_many关系的模型:

  

通过协会搜索

     

可以搜索关联模型上的列。请注意,如果执行此操作,则无法使用数据库索引加快搜索速度。但是,它支持作为尝试跨模型搜索的快速方法。

最后一行似乎表明这是通过关联进行原型搜索的好方法。是的,确实有效。但我通常会有10秒的延迟返回结果。有没有办法让跨模型搜索也快?

是:分别搜索两个模型,然后合并结果?

1 个答案:

答案 0 :(得分:1)

我做了一个解决方法,在我的主表中添加了一个str_ *列,并在保存一个元素时更新了这个列:

  before_validation(on: :save) do
    self.str_abbreviations = join_abbreviations()
    # ... etc, append all columns I'd like to search through ...
    true
  end