尝试使用部分搜索来搜索Heroku
以下查询在Heroku上生成SQL错误,但在我的本地版本中正常运行:
@events.search(params[:search]+":*")
我正在使用Heroku共享数据库服务,这是PostgreSQL版本之间语法的可能差异吗?
我应该使用什么语法对PostgreSQL 8中的全文索引进行部分匹配搜索?
答案 0 :(得分:3)
也许您可以尝试使用字符串插值而不是连接。
@events.search("#{params[:search]}:*")
我不确定吻图释是什么:*增加了texticle的功能。也许我需要学习更多的SQL。
答案 1 :(得分:2)
事实证明,PostgreSQL版本8不支持使用:*语法进行部分搜索。
答案 2 :(得分:1)
正如http://www.postgresql.org/docs/9.0/interactive/textsearch-controls.html#TEXTSEARCH-PARSING-QUERIES所说,使用":"用于指定前缀匹配。例如。如果搜索"澳大利亚"用" Aus:"会工作但不会" ust:*"。
如此concat OR xxxx LIKE"%yyy%"会更好用
答案 3 :(得分:0)
您可以使用带有前缀的tsearch选项:
:tsearch => {:prefix => true}