1

アプリケーションで休止状態検索3.3を使用しています。

私の検索フォームには、テキストフィールド、ドロップダウン、リストボックスなどがあります。単語、数字、日付を検索する必要があります。基本的にマルチフィールド検索。

私の問題は、単語内の空白を含む単語で検索を実行できないことです。

次に例を示します。リストボックスには、複数選択を可能にする一連の従業員名があります。したがって、Javaレイヤーでは、次のような配列で値を取得します-[Ankita Murthy、Ahana Gupta、Archita Patel]
ここで、これらの名前をコンマで区切り、データベースのemployee_name列と照合して結果を取得する必要があります。単語内の空白のため、一致は失敗しています。

少し調べてみたところ、これを実現するためにアナライザーを変更できることがわかりましたが、理解できません。

また、アナライザーを変更して大文字/小文字を無視するようにガイドしてください

4

1 に答える 1

0

最良の方法は、選言を使用して OR を作成し、ilike で機密性を回避し、MatchMode.ANYWHERE を使用して DB の値の任意の場所に値を見つけることです。

MatchMode を使用しても使用しなくても試すことができますが、他にもさまざまな種類の start、end、exact があります。

Disjunction dis = Restrictions.disjunction();

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

これをチェックしてください

于 2014-07-09T00:21:20.590 に答える