0
我正在努力将搜索添加到我的PostgreSQL 9.1 rails应用程序。下面是设置:是否可以使用DB索引来优化pg_search,pg_search_scope方法?
class Comment < ActiveRecord::Base
include PgSearch
pg_search_scope :search_by_content, :against => :content
Rails的C,命令:
Comment.where(:commentable_id => 33).search_by_content('pgsql').count
Rails日志:
(348.1ms) SELECT COUNT(*) FROM "comments" WHERE "comments"."commentable_id" = 33 AND (((to_tsvector('simple', coalesce("comments"."content"::text, ''))) @@ (to_tsquery('simple', ''' ' || 'pgsql' || ' '''))))
安装后的宝石,和设置注释模型,说明只字不提关于添加数据库索引以优化性能。鉴于查询已经在本地使用了348.1ms,我很好奇这可以优化为更高性能吗?
感谢
对于那些不说Rails的人来说,这个'pg_search'运行的底层查询是什么?是全文搜索吗?如果是这样,请阅读关于全文搜索的PostgreSQL手册,该手册讨论全文的GiST索引。 –
正在运行的查询显示在上面的“Rails日志”中,它显示了发送给PostgreSQL的原始SQL – AnApprentice
Gah,我是盲人。抱歉。所以是的,它使用全文搜索。 –