5

我们有一个使用 GIN 索引的全文搜索本机查询,如下所示:

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

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

但是,我们无法在 HQL 中复制此查询,因为符号 @ 上的休眠错误。如何在休眠方言中添加符号@?

4

1 回答 1

2

您可以在此链接中找到它,该链接将引导您:

  • 认识到 SQLFunctions 必须返回一个值,并且在 HQL 中使用时必须采用表达式形式(例如,fts(body, 'dog') = true -- fts(body, 'dog') 在 HQL 中不起作用)
  • 为 PG FTS 创建一个 Hibernate SQLFunction;和
  • 请记住,表达式“to_tsvector(body) @@ to_tsquery('dog')”的计算结果为布尔值
于 2013-07-26T06:00:44.477 回答