2013-07-26 49 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(‘狗’)」 計算結果爲布爾
相關問題