2013-07-26 36 views
5

我们全文搜索使用一个GIN索引像这样本机查询:如何将@添加到postgres hibernate方言中?

CREATE INDEX idx_column1 ON table1 USING gin (to_tsvector('english', column1)); 

SELECT * 
FROM table1 
where to_tsvector('english', column1) @@ to_tsquery('searchedText') 

然而,我们无法复制的HQL此查询,因为Hibernate错误的符号@。 如何将符号@添加到休眠方言?

+0

Hibernate的人似乎认为这是奇怪的想做到这一点(“不可移植” ,“只使用Hibernate搜索”等),所以信息很难得到。 –

+0

我希望这篇文章能帮助你 - http://java-talks.blogspot.com/2014/04/use-postgresql-full-text-search-with-hql.html –

回答

1

你可以找到它在this link,该链接会引导你:

  • 承认SQLFunctions必须返回一个值,并在 使用时HQL必须是表达形式(例如,FTS(体,'dog')= true - fts(body,'dog')将不能在HQL中工作)
  • 为PG FTS创建Hibernate SQLFunction;和
  • 记住的是,“to_tsvector(身体)@@ to_tsquery(‘狗’)” 计算结果为布尔
相关问题