solr集群组件如何工作?

时间:2017-05-09 18:24:36

标签: solr lucene cluster-analysis solrcloud carrot2

我正在寻找(在制作我自己的过程中)为fork2的solr默认群集组件。在clustering component类中,有两种方法可以调用聚类算法:

  • 在重写的流程方法

    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);
    

现在我的问题是,当所有结果都已聚合时,进程方法不是在完整的结果查询上工作,而是在分片和完成阶段os,那么为什么我们将聚类算法调用两次并将其添加到结果状态?我错过了什么吗?

群集组件代码here

P.S 如果我错了,请纠正我。

1 个答案:

答案 0 :(得分:1)

对我来说看起来像个错误(我发现它在分布式模式下实际上被调用了两次)。我将对此进行调查,请参阅SOLR-10678进行跟踪。