0

我正在寻找(正在制作我自己的)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如果我错了请纠正我。

4

1 回答 1

1

对我来说看起来像一个错误(我看到它实际上在分布式模式下被调用了两次)。我会调查一下,查看 SOLR-10678 来跟踪它。

于 2017-05-12T11:47:05.847 回答