2011-07-08 21 views
0

solr検索を使用しています。私の検索フィールドにはdiamondDiamondが含まれています。 しかし、Diamondまたはdiamondを検索すると正しい結果が得られます。しかし、Diamond*またはdiamond*を検索すると、diamond*の結果が得られますが、Diamond*の結果は見つかりませんでした。私は適用しましたが、<filter class="solr.LowerCaseFilterFactory"/>.ワイルドカードで大文字の文字列を検索する際に問題が発生する

あなたが私に問題を提起することをお勧めしますか?

答えて

3

この内部

http://wiki.apache.org/lucene-java/LuceneFAQ#Are_Wildcard.2C_Prefix.2C_and_Fuzzy_queries_case_sensitive.3F

「をLuceneのクエリの他のタイプとは違って、ワイルドカード、プレフィックス、及びファジィクエリは、このようなステミングと小文字に変換などの操作を実行するコンポーネントであるアナライザを通過していません」この問題の回避策があります。

+0

私は、ワイルドカードクエリがアナライザを通過しませんが、私のドキュメントのように、ダイヤモンドを検索するときよりも「ダイヤモンド」キーワードを持っています。そうではありませんか ?? – Romi

+0

いいえ、ワイルドカードがトークンをロックするので、小文字フィルタ –

+0

が実行されません。ダイヤモンドのようにクエリすると結果が表示されるはずです。 – Romi

関連する問題