c++
のような特殊文字として値を保持しているが、私は上記のクエリ結果を返しますが、大文字と小文字が区別として異なっているluceneクエリを使用しているhibernate検索で大文字と小文字を区別しない検索方法
QueryBuilder qb = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(Professional.class).get();
BooleanQuery booleanQuery = new BooleanQuery();
query = qb .keyword().wildcard().onField(fieldName).ignoreFieldBridge().matching(fieldValue+"*").createQuery();
booleanQuery.add(query, BooleanClause.Occur.MUST);
としてクエリを書いていますように、一部のフィールドのStandardAnalyzer
と、一部のフィールドのWhitespaceAnalyzer
としてインデックス化しながら、私は2つのアナライザを使用していますC++とC++のように 私は結果が得意ではないので、インデクシングと検索の間に同じアナライザを使用していないので、結果が不十分です。
plz私は1週間から打ちました。 。 ありがとうございました
パブリッククラスMyAnalyzerアナライザを拡張{ \t \tアナライザアナライザ=新しいアナライザ(){ \t \t保護TokenStreamComponentsのcreateComponents(最終文字列フィールド名){ \t \tトークナイザソース=新しいWhitespaceTokenizer()。 \t \t TokenStream filter = new LowerCaseAnalyzer(source); \t \t返される新しいTokenStreamComponents(source、filter); \t \t} \t \t} }述べたように、私は次のようにコードの上に追加しかし、私はタイプMyAnalyzerのようなエラーが継承された抽象メソッドAnalyzer.tokenStream(文字列、リーダー)を実装する必要がありますので、それをあなたの応答のための – Santhosh