我正在尝试执行以下操作:我想通过分别查询每个字段然后将前 k 个匹配项添加到该集合来创建一组候选人。完成之后,我需要在这个候选集上运行另一个查询。我现在实现它的方式是使用 QueryWrapperFilter 和 BooleanQuery 匹配每个候选文档的唯一 id 字段。但是,这意味着我必须先为每个候选文档调用 IndexSearcher.doc().get("docId"),然后才能将其添加到我的 BooleanQuery,这是主要的瓶颈。我只通过 MapFieldSelector("docId) 加载 docId 字段。
我想创建自己的过滤器类,但我不能直接使用内部 Lucene 文档 ID,因为它们是按段指定的。关于如何解决这个问题的任何想法?