[英]PG full text search on rails using pg_search gem for substring
[英]Full-text search on Heroku using pg_search gem
我已经使用pg_search gem为我的Rails应用程序实现了全文搜索
我创建索引的迁移看起来像
execute(<<-'eosql'.strip)
CREATE index mytable_fts_idx
ON mytable
USING gin(
(setweight(to_tsvector('english', coalesce("mytable"."name", '')), 'A') ||
' ' ||
setweight(to_tsvector('english', coalesce("mytable"."description",'')), 'B')
)
)
eosql
我的控制器代码看起来像
pg_search_scope :full_text_search,
:against => [
:name, :description],
:using => {
:tsearch => {
:prefix => true,
:dictionary => "english",
:any_word => true
}
}
在Postgres 9.0.4上本地完全正常。 但是,当我将其部署到heroku并搜索示例查询'test'时,它会引发错误
PGError: ERROR: syntax error in tsquery: "' test ':*"
SELECT COUNT(count_column) FROM (SELECT 1 AS count_column FROM "mytable" WHERE (((to_tsvector('english', coalesce("mytable"."name", '')) || to_tsvector('english', coalesce("mytable"."description", ''))) @@ (to_tsquery('english', ''' ' || 'test' || ' ''' || ':*')))) LIMIT 12 OFFSET 0) subquery_for_count ):
有关我错在哪里的建议以及我应该注意什么来解决这个错误? 谢谢。
我是pg_search
的主要开发者。 对不起,你遇到了这个问题! 现在使用时会出现pg_search
错误:prefix
对PostgreSQL 8.3(Heroku的默认值)进行:prefix
搜索。
https://github.com/Casecommons/pg_search/issues/10
这是我现在的首要任务。 我仍在找出让测试套件针对8.x和9.x运行的最佳方法。
更新 :遗憾的是:prefix
搜索根本不适用于PostgreSQL 8.3。 该功能在8.4中引入。 我发布了pg_search
0.3.3,它改进了错误信息。 希望Heroku很快就会升级到9.0。 我相信他们想要这样做,但他们显然不能在没有警告的情况下升级所有批发商。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.