2013-07-26 24 views
5

Chúng tôi có một truy vấn nguồn gốc cho tìm kiếm văn bản đầy đủ có sử dụng một chỉ số GIN như vậy:cách thêm @ to postgres hibernate dialect?

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

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

Tuy nhiên, chúng tôi không thể tái tạo truy vấn này trong HQL, bởi vì lỗi ngủ đông trên biểu tượng @. Làm cách nào để thêm biểu tượng @ vào phương ngữ ngủ đông?

+0

The folks Hibernate dường như nghĩ rằng nó là lạ để muốn làm điều này ("không di động" , "chỉ cần sử dụng Hibernate Search", vv) để thông tin khó có thể đi qua. –

+0

Tôi hy vọng bài viết này sẽ giúp bạn - http://java-talks.blogspot.com/2014/04/use-postgresql-full-text-search-with-hql.html –

Trả lời

1

bạn có thể tìm thấy nó trong this link, liên kết đó sẽ hướng dẫn các bạn:

  • nhận ra rằng SQLFunctions phải trả lại một giá trị và khi được sử dụng trong HQL phải nằm trong một hình thức biểu hiện (ví dụ, FTS (cơ thể , 'dog') = true - fts (body, 'dog') sẽ không hoạt động trong HQL)
  • tạo một Hibernate SQLFunction cho PG FTS; và
  • nhớ rằng khái niệm "to_tsvector (cơ thể) @@ to_tsquery ('chó')" để đánh giá một boolean
Các vấn đề liên quan