Tomcat の上で lucene solr 1.4 を実行しています。
solr.TrieIntFieldにマップされるタイプintで定義されたフィールド ID があります。
?q=id:a のような solr クエリを実行すると、NumberFormatExceptionが発生します。
例外をスローする代わりに、上記のシナリオに対して空の結果セットを返すように solr を構成することは可能ですか?
Tomcat の上で lucene solr 1.4 を実行しています。
solr.TrieIntFieldにマップされるタイプintで定義されたフィールド ID があります。
?q=id:a のような solr クエリを実行すると、NumberFormatExceptionが発生します。
例外をスローする代わりに、上記のシナリオに対して空の結果セットを返すように solr を構成することは可能ですか?
これを TrieIntField にする必要があるのはなぜですか? 使えませんか?これらはすべて、トークン化されていないフィールド (org.apache.solr.schema.FieldType) のサブクラスです。
更新: 元の質問に基づいて、id に関するものであるため、文字列を使用することを提案しました。その場合は違いがないためです。ただし、他のフィールドが TrieIntField 型を使用する場合、これらのフィールドに文字列を使用することの欠点は、並べ替えと範囲クエリが文字列ベースになり、望ましくない可能性があることです。その場合、クライアント API で元の問題を防ぐか、独自のハンドラーを作成して問題をより適切に処理する必要があります。ほとんどのアプリケーションはこのエラーを捕捉し、より適切なユーザー エラー メッセージでユーザーに応答するため、Solr はエラーを与えることで正しいことを行っています。solr がエラーではなく結果を返さない場合は、誤解を招く可能性があります。