我有一个使用pg_search gem的Rails应用程序来利用PostgreSQL的全文搜索功能。
本手册介绍了如何搜索具有(例如)has_many关系的模型:
通过协会搜索
可以搜索关联模型上的列。请注意,如果执行此操作,则无法使用数据库索引加快搜索速度。但是,它支持作为尝试跨模型搜索的快速方法。
最后一行似乎表明这是通过关联进行原型搜索的好方法。是的,确实有效。但我通常会有10秒的延迟返回结果。有没有办法让跨模型搜索也快?
是:分别搜索两个模型,然后合并结果?
答案 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