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,我很好奇这可以优化为更高性能吗?

感谢

+0

对于那些不说Rails的人来说,这个'pg_search'运行的底层查询是什么?是全文搜索吗?如果是这样,请阅读关于全文搜索的PostgreSQL手册,该手册讨论全文的GiST索引。 –

+0

正在运行的查询显示在上面的“Rails日志”中,它显示了发送给PostgreSQL的原始SQL – AnApprentice

+1

Gah,我是盲人。抱歉。所以是的,它使用全文搜索。 –

回答