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,我是盲人。抱歉。所以是的,它使用全文搜索。 –