2017-06-29 175 views
0

我一直在爲購物網站應用程序開發示範應用程序。我使用Spring + Hibernate來管理後端服務器上的事物。現在,因爲我希望應用程序的用戶能夠搜索產品,就像他們在谷歌搜索的東西,我得出的結論是,Hibernate搜索最適合我的需求。不過,我希望應用的管理員能夠通過爲多個屬性提供搜索過濾器來搜索內容。例如,「PRODUCT」表具有諸如id,name,desc,created_date等字段,我想爲管理員提供不同的輸入方式,例如id,name,desc和created_date的部分數據,並且可以獲得相關信息搜索結果。 Hibernate Search允許我通過將查詢與「and」,「should」等子句相結合來實現。但是,爲了實現這一點,我必須使用@Field註釋來註釋所有可搜索的字段。Hibernate搜索其他搜索條件

我的問題在於,如果用@Field註釋所有可搜索的屬性或者是否有其他解決相同問題的方法是明智的?

+0

你能不能解釋所有的領域是什麼也正是困擾你?要註釋的字段數量?將註釋添加到類的簡單事實?還有別的嗎? –

+0

我很擔心查詢的性能。如果我嘗試索引所有列,就像我有一個名爲「create_user_id」的字段,並且我希望用戶能夠對其執行全文搜索,那麼將該字段索引到hibernate搜索以及所有其他字段中會減少性能? –

+0

好吧,那麼我第二@ Sanne的回答:只需註釋你需要的所有領域。除非您真正嘗試了該工具並注意到問題,否則不要擔心性能問題,否則可能會浪費您的時間。在Lucene(Hibernate Search背後的引擎)上工作的人已經花費了大量的時間優化,所以除非你的用例真的很奇特(比如數百或數千個字段),Lucene應該很好地處理這個問題。 –

回答

1

我會建議簡單地註釋你需要@Field