我正在寻找(正在制作我自己的)solr 的胡萝卜2 的默认聚类组件。在聚类组件类中,有 2 种方法调用聚类算法:
在覆盖过程方法中
SolrDocumentList solrDocList = SolrPluginUtils.docListToSolrDocumentList( results.docList, rb.req.getSearcher(), engine.getFieldsToLoad(rb.req),docIds); Object clusters = engine.cluster(rb.getQuery(), solrDocList, docIds, rb.req); rb.rsp.add("clusters", clusters);
再次在 finishStage 方法中
Map<SolrDocument,Integer> docIds = null; Object clusters = engine.cluster(rb.getQuery(), solrDocList, docIds, rb.req); rb.rsp.add("clusters", clusters);
现在我的问题是 process 方法不是在完整的结果查询上工作,而是在所有结果都聚合后的分片和完成阶段 os 上工作,那么为什么我们两次调用聚类算法并将其添加到结果状态?我错过了吗?某物?
集群组件代码在这里。
PS如果我错了请纠正我。