使用Heroku上的texticle与postgresql全文搜索部分匹配

时间:2012-02-24 04:34:33

标签: ruby-on-rails postgresql heroku texticle

尝试使用部分搜索来搜索Heroku

以下查询在Heroku上生成SQL错误,但在我的本地版本中正常运行:

@events.search(params[:search]+":*")

我正在使用Heroku共享数据库服务,这是PostgreSQL版本之间语法的可能差异吗?

我应该使用什么语法对PostgreSQL 8中的全文索引进行部分匹配搜索?

4 个答案:

答案 0 :(得分:3)

以下是changes in PostgreSQL 9.1

也许您可以尝试使用字符串插值而不是连接。

@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}