2011-01-14 8 views
2

私はlucene 2.9.2を使用しています(.NET does notはlucene 3を持っています)Lucene Tag C#で問題を検索すると、エスケープの問題が発生しますか?

"tag:C#" "tag:c"と同じ結果を返します。どのようにして 'C#'を検索語にすることができますか?私はField.Index.NOT_ANALYZEDにField.Index.ANALYZEDを変更しようとしましたが、結果は得られませんでした。

私は各タグをエスケープする必要があると仮定して、どうすればよいですか?

答えて

4

問題はクエリではなく、クエリと、(同じアナライザを挿入するために使用している場合は)両方のフィールドから "#"を削除しているクエリアナライザです。 。

このような特殊文字を保存するアナライザーを見つけるか、カスタムアナライザーを作成する必要があります。

編集:KeywordAnalyzerをチェックアウト - それだけでトリックを行う場合があります

「トークン化」とは、単一のトークンとしてストリーム全体を。これは、郵便番号、ids、および一部の製品名などのデータに役立ちます。

+0

私はWhiteSpaceAnalyzer –

1

Lucene 2.9.2のJava Documentationによると、 '#'は特殊文字ではなく、クエリでエスケープする必要があります。実際にインデックスに値 'C#'が格納されている様子を確認することができます(つまり、インデックスをLukeで開きます)。

+0

gahを使用しています。私はこのマシンにJavaをインストールしていません。私は私のVMの1つが確信しています。私は後でそれをチェックします。私はルークについて知りませんでした。 –

関連する問題