2017-07-03 16 views
0

私はtitlecontentフィールドに大文字と小文字を区別しない検索を実装しようとしていますが、役に立たないです。ソルジャー小文字doesnt仕事

<filter class="solr.LowerCaseFilterFactory" />を「text_general」フィールドタイプに「schema.xml/managed-schema.xml」と「index」と「analyze」トークナイザの両方に追加してみました。

enter image description here

私のタイトルと内容フィールドは、それぞれ 'text_general' タイプのものであろう。

  • *abc*: 'ABC' の該当する結果は
  • *ABC*を表示されません:のみ 'ABC' が表示されますとなります。私は、次を検索しようとした enter image description here

これは、小文字のフィルタが機能していないことを明確に示しています。以下に、最初のクエリのデバッグ結果を貼り付けます。また、以下の

enter image description here

サンプルテキストを分析する際、タイトルフィールドのスクリーンショットです。出力はOKですが、検索は期待通りに機能しません。これは検索クエリの問題ですか?高度で任意のヘルプ

enter image description here

ありがとう!

+0

既存のスキーマを変更する場合は、 –

+0

@AshrafulIslamを再インデックスする必要があります。hi、reindexedしてsolrインスタンスを再起動します。私はこれをテストするために新しいコアを作り直しました。 – codeandfootball

答えて

0

いいえ、小文字のフィルタリングが機能しないことを明確に示していません。あなたが経験していることは、most filters or tokenizers aren't applied when you're doing a wildcard searchです(ワイルドカード検索では本当に適用できないため、全体的な用語は一緒に働く)。

解決策は、小文字の小文字検索を実行する場合は、フィールドの小文字化または処理を実際にインデックス化する前に実行し、トークナイザのみを使用して必要に応じてテキストを分割することです(LowercaseTokenizerthe only one that is a MultiTermAwareComponent)。それ以外の場合、トークン化や文字列の分割を実行しない場合は、stringフィールドを使用します。

Solrまたはin an update processorにコンテンツを送信する独自​​のコードで行うことができます。

関連する問題