2017-05-09 1 views
0

Je cherchais (en train de créer la mienne) dans le composant de cluster par défaut de solr pour carotte2. Dans la classe, il existe 2 méthodes où clustering component les algorithmes de regroupement sont appelés:Comment fonctionne le composant de clustering solr?

  • dans la méthode process surchargée

    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); 
    
  • Et encore une fois dans la méthode finishStage

    Map<SolrDocument,Integer> docIds = null; 
    Object clusters = engine.cluster(rb.getQuery(), solrDocList, docIds, rb.req); 
    rb.rsp.add("clusters", clusters); 
    

Maintenant, ma question est la méthode de processus ne fonctionne pas sur le résultat complet q Mais si les résultats ont été agrégés, pourquoi appelons-nous deux fois les algorithmes de clustering et l'ajoutons à l'état du résultat?

Clustering code de composant here.

P.S Corrigez-moi si je me trompe.

Répondre

1

Cela ressemble à un bug pour moi (et je vois qu'il est effectivement appelé deux fois en mode distribué). Je vais regarder dans cela, voir SOLR-10678 pour le suivre.