2016-06-28 7 views
0

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週間から打ちました。 。 ありがとうございました

+0

パブリッククラス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

答えて

0

カスタムアナライザーを使用し、WhitespaceTokenizerの後にLowerCaseFilterを追加する必要があります。このような:

Analyzer analyzer = new Analyzer() { 
    @Override 
    protected TokenStreamComponents createComponents(final String fieldName) { 
     Tokenizer source = new WhitespaceTokenizer(); 
     TokenStream filter = new LowerCaseAnalyzer(source); 
     return new TokenStreamComponents(source, filter); 
    } 
} 
+0

感謝を解決する方法を得ましたどのようにコードを使用するのか、これらのコードを置く場所、plzは私が@Analyzer(impl = WhitespaceAnalyzer.class)として注釈を使用したので助けます。 \t @Field \tプライベートストリングスキル; – Santhosh

+0

事前にお詫び申し上げます – Santhosh

+0

私はhibernate serarch 4.4.6を使用していますので、カスタムアナライザーを使用しましたが、継承した抽象メソッドを実装する必要があることを示しています。Analyzer.tokenStream(String、Reader)カスタムアナライザーコードはパブリッククラスMyAnalyzerアナライザ{ \tアナライザアナライザ=新しいアナライザ(){ \t @Override \t保護TokenStreamComponentsのcreateComponents(最終文字列フィールド名){ \tトークナイザソース=新しいWhitespaceTokenizer()が延びています。 \t TokenStreamフィルタ=新しいLowerCaseAnalyzer(ソース); \t新しいTokenStreamComponents(source、filter)を返します。 \t} \t} }ありがとうございます – Santhosh

関連する問題