【发布时间】:2015-10-18 19:10:43
【问题描述】:
我正在我的应用程序中实现 postgresql 文本搜索。当我搜索特定项目时,我得到了错误。
SELECT COUNT(*) FROM "documents" INNER JOIN (SELECT "documents"."id" AS pg_search_id, (ts_rank((to_tsvector('english', 合并(“文档”。“标题”::文本,''))|| to_tsvector('英文', coalesce("documents"."content"::text, ''))), (to_tsquery('english', ''' ' || '咖啡' || ' ''')), 0)) AS rank FROM "documents" WHERE (((to_tsvector('english', coalesce("documents"."title"::text, '')) || to_tsvector('english', coalesce("documents"."content"::text, ''))) @@ (to_tsquery('english', ''' ' || '咖啡' || ' '''))))) pg_search_documents ON "文档"."id" = pg_search_documents.pg_search_id
在我的文档模型中
include PgSearch
pg_search_scope :search, :against => [:title, :content],
:using => {tsearch: {dictionary: "english"}}
def self.text_search(query)
if query.present?
search(query)
else
all
end
end
在我的文档控制器中
def load_documents
@documents = documents_scope.all.text_search(params[:query])
end
我的数据库是如何连接到控制台的
Document(id: uuid, category_id: uuid, title: string, created_at: datetime, updated_at: datetime, version_id: uuid)
DocumentVersion(id: uuid, document_id: uuid, document_version_id: uuid, user_id: uuid, title: string, content: text, created_at: datetime, updated_at: datetime
它与表连接有关,但我不确定如何修复它。感谢您的帮助。
【问题讨论】:
标签: ruby-on-rails postgresql ruby-on-rails-4 pg-search