2013-07-26 14 views
5

Mamy rodzimych kwerendy dla wyszukiwania pełnotekstowego, która używa indeksu GIN tak:jak dodać @ do hibernacji dialektu postgres?

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

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

Jednak, byliśmy w stanie replikować tej kwerendy w HQL, ponieważ błędy hibernate on symbol @. Jak dodać symbol @ do dialektu hibernacji?

+0

Ludzie Hibernate wydaje się, że to dziwne chce zrobić („nie przenośny” , "po prostu korzystaj z wyszukiwania w trybie hibernacji" itp.), więc trudno jest uzyskać informacje. –

+0

Mam nadzieję, że ten artykuł Ci pomoże - http://java-talks.blogspot.com/2014/04/use-postgresql-full-text-search-with-hql.html –

Odpowiedz

1

można go znaleźć w this link, linkujące poprowadzi Cię do:

  • uznają, że SQLFunctions trzeba zwrócić wartość, a użyte w HQL musi być w formie ekspresji (np FTS (body , "pies") = true - fts (body, "pies") nie będzie działać w HQL)
  • utworzyć Hibernate SQLFunction dla PG FTS; i
  • pamiętać, że wyrażenie „to_tsvector (korpus) @@ to_tsquery («pies»)” ma wartość logiczną
Powiązane problemy