【发布时间】:2013-01-08 03:56:36
【问题描述】:
我正在努力将搜索添加到我的 PostgreSQL 9.1 rails 应用程序中。这是设置:
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' || ' '''))))
安装 gem 并设置评论模型后,说明中没有提到添加 db 索引以优化性能。鉴于查询在本地已经花费了 348.1 毫秒,我很好奇这是否可以优化以提高性能?
谢谢
【问题讨论】:
-
对于我们这些不会说 Rails 的人来说,
pg_search运行了哪些底层查询?是全文搜索吗?如果是这样,请阅读 PostgreSQL 全文搜索手册,其中讨论了全文搜索的 GiST 索引。 -
正在运行的查询显示在上面的“Rails 日志”中,它显示了发送到 PostgreSQL 的原始 SQL
-
呸,我瞎了。对不起。所以是的,它使用的是全文搜索。
标签: ruby-on-rails ruby-on-rails-3 postgresql postgresql-9.1 pg-search