私は次のことを行おうとしています。各フィールドに個別にクエリを実行し、このセットに上位k個の一致を追加して、候補のセットを作成したいと思います。それが終わったら、この候補セットに対して別のクエリを実行する必要があります。私が今それを実装した方法は、各候補ドキュメントの一意のIDフィールドに一致するBooleanQueryでQueryWrapperFilterを使用することです。ただし、これは、主要なボトルネックであるBooleanQueryに追加する前に、候補ドキュメントごとにIndexSearcher.doc()。get( "docId")を呼び出す必要があることを意味します。MapFieldSelector( "docId)を介してdocIdフィールドをロードするだけです。
独自のFilterクラスを作成したかったのですが、セグメントごとに指定されているため、内部のLuceneドキュメントIDを直接使用することはできません。これにアプローチする方法について何か考えはありますか?