2016-07-05 44 views
0

我知道Hibernate Search 5.5 Reference Guide描述了部分5.1.2.4的短語查詢。短語查詢,但那種短語查詢只允許slop因子而不是正則表達式。有沒有一種方法可以在Hibernate搜索中通過短語搜索並使用正則表達式?

有沒有辦法讓我在Hibernate Search中搜索短語並使用正則表達式?謝謝。

+0

我不相信HQL對正則表達式有任何開箱即用的支持([ref](http://stackoverflow.com/questions/14245453/hibernate-regex)),但您可以使用任何正則表達式的功能,你的特定數據庫有([參考](http://stackoverflow.com/questions/17702544/hibernate-regexp-mysql))。 –

+0

你好。感謝您的回覆和參考。現在我正在使用Hibernate Search和Lucene進行全文搜索。這是我第一次使用它們,我還沒有找到一種方法將HQL與Hibernate Search和Lucene一起使用。看來Hibernate Search和Lucene提供了一些API方法,我們只是用它們來進行搜索,似乎沒有任何接口允許像普通的Hibernate查詢那樣傳遞HQL語句。如果我錯了,請糾正我。謝謝。 –

+0

@TimBiegeleisen Hibernate Search與HQL無關,它是通過SQL或HQL獲得的查詢功能的更強大的擴展。看起來你不知道它是什麼,你錯過了很多強大的功能!我建議看看鏈接的參考指南。 – Sanne

回答

3

5.1.2.4節展示了一個使用Hibernate Search DSL使用短語查詢的簡單示例。

當您使用DSL,你得到一些幫助,比如自動類型轉換,所以它是最簡單的用例建議的方式,但是你可以繞過DSL,並使用了Lucene的API創建的任何Lucene Query,並使用Query像使用DQL構建的實例。

有關正則表達式的查詢,請參閱org.apache.lucene.search.RegexpQuery

所有Apache Lucene查詢實例都與Hibernate Search兼容。

相關問題