Solr: wie man insgesamt eine Anzahl von Ergebnissen für gruppierte Abfrage mit dem Java-API

Habe ich Folgendes:

43 Dokumente indiziert in Solr

Wenn ich die Java-API eine Abfrage ohne Gruppierung, wie:

SolrQuery query = new SolrQuery("*:*");
query.setRows(10);

Kann ich das dann erhalten Sie die Zahl der übereinstimmenden Elemente wie folgt:

solrServer.query(query).getResults().getNumFound(); //43 in this case

Den getResults() Methode gibt eine SolrDocumentList Instanz, die enthält diesen Wert.

Wenn ich jedoch Gruppierung verwenden, so etwas wie:

query.set("group", "true");
query.set("group.format", "simple");
query.set("group.field", "someField");

Dann den obigen code für das abrufen von Abfrageergebnissen keine loger arbeiten (wirft NPE), und ich habe zu verwenden:

List<GroupCommand> groupCommands = solrServer.query(query).getGroupResponse().getValues();
List<Group> groups = groupCommand.getValues();
Group group = groups.get(groupIndex);

Ich nicht verstehen, wie dieser Teil des API, um die Anzahl von übereinstimmenden Dokumente (die 43 aus der nicht-gruppierungsabfrage oben). Zuerst dachte ich, dass mit der Gruppierung nicht mehr möglich ist, zu bekommen, aber ich habe bemerkt, dass wenn ich nicht eine ähnliche Abfrage in der Solr admin-Konsole, mit der selben Gruppierung und alles ist, gibt es die exakt gleichen Ergebnisse wie die Java-API und auch numFound=43. So offensichtlich ist der verwendete code für die Konsole hat eine Möglichkeit zum abrufen dieser Wert auch bei der Gruppierung verwendet wird:

Solr: wie man insgesamt eine Anzahl von Ergebnissen für gruppierte Abfrage mit dem Java-API

Meine Frage ist, wie bekomme ich die gesamte Anzahl von übereinstimmenden Dokumente, die für eine Abfrage mit Gruppierung erfolgt über Solr die Java-API?

InformationsquelleAutor Shivan Dragon | 2013-04-19

Schreibe einen Kommentar