Lucene.Net を使用するアプリケーションには、整数を格納する数値フィールドがあります。値のカーディナリティはかなり低くなります (通常、異なる値は 20 ~ 30 未満)。
このフィールドに対して (contrib パッケージを使用して) ファセット検索を行いたいと思いSimpleFacetedSearch
ます。つまり、個別の値ごとのヒット数が必要です。
現在、追加のテキスト フィールドに値のコピーをそのまま保存しており、このテキスト フィールドに対してファセット検索を実行しています。これにより、正しい結果が返されます。
しかし、これは行くべき道ですか、それとも NumericFields に対してファセット検索を行う特別な方法はありますか?
注: カーディナリティが低いため、precision-step を int.MaxValue に設定して、値ごとに 1 つの項のみが存在するようにすることを検討してください。その場合、数値フィールド自体でファセット検索を簡単に実行し、 を使用して手動で値をデコードできると思いますNumericUtils.PrefixCodedToInt()
。これは正しいですか、それとも合併症がありますか? これまでのテストでは、正常に機能することが示されました。