Luceneでtf-idfとは何の関係もないカスタムスコアリング式を実装しようとしています(たとえば、類似度を変更するなど)。Luceneカスタムスコアリング(Lucene 3.2)は、インデックス内のすべてのドキュメントを反復処理することを最速の方法で行います。
これを行うには、カスタムクエリを使用して、インデックスに格納されているすべてのドキュメントのスコアを生成する必要があります。本質的に同義語であるため、文書に正確な用語がない場合でも、依然として肯定的なスコアを生成する可能性があります)。 IndexReaderを作成し、すべてのドキュメント(here)のDocument d = reader.doc(i)
を呼び出して、その場でスコアを生成するのに最適な方法はありますか?
私は、Luceneのスコアリング内部、特に様々なScorerとCollectorクラスを見てきました。Lucene 3.2の場合、WeightはScorerを提供し、Collectorはすべてのドキュメントをループします。クエリと一致します。この構造を何らかの方法で利用できますか?しかし、すべてのドキュメントを考慮するためにScorerのカスタム実装を再度利用できますか?
私はあなたが実装しようとしているスコアの種類について非常に興味があります。 –