2011-05-05 161 views
1

我在我的應用程序中使用hibernate搜索3.3。休眠搜索3.3-忽略IntraWord空白

我的搜索表單有文本字段,下拉列表,列表框等。我必須對單詞,數字和日期進行搜索。基本上是一個多場搜索。

我的問題是,我無法執行搜索單詞與詞內空白。

例如:列表框有一組允許多選的員工名稱。所以在我的Java層,我會得到一個數組中的值 - [Ankita Murthy,Ahana Gupta,Archita Patel]
現在,我必須用逗號分隔這些名稱,並將這些名稱與數據庫中的employee_name列匹配並檢索結果。由於intraword空白,匹配失敗。

我做了一點研究,發現我們可以改變分析儀來實現這一點,但我無法理解這一點。

而且引導我上改變所述分析儀,使它們忽略大寫/小寫

回答

0

最好的是在使用析取作出OR,ILIKE避免靈敏度,和MatchMode.ANYWHERE到fidn值的任何地方數據庫的值。

您可以嘗試使用或不使用MatchMode;但是,它有其他各種類型的開始,結束和準確。

Disjunction dis = Restrictions.disjunction(); 

dis.add(Restrictions.ilike("employee.name",value1,MatchMode.ANYWHERE); 
.... 
criteria.add(dis); 

Check this out