Ich habe einen Solr-Index mit SolrNet zugegriffen, und ich möchte den Index (Position) eines bestimmten Dokuments in den Ergebnissen abrufen, ohne die gesamte Ergebnismenge zurückgeben.Solr Suchergebnisse und Abruf der Position des Dokuments
Ausführlicher ... die Abfrage gibt ~ 30.000 Dokumente zurück und ist nach einem Integer-Feld geordnet. Das eindeutige Schlüsselfeld enthält eine Guid, und ich möchte anhand des eindeutigen Schlüssels herausfinden, wo in den Ergebnissen ein bestimmtes Dokument ist, und nur die ersten 10 Ergebnisse zurückgeben.
Dieser Index wurde ursprünglich in Plain Old Lucene implementiert, und diese Aufgabe wurde mit zwei Abfragen erreicht, eine, um die Lucene-Dokument-ID des Dokuments zu erhalten, das ich wissen möchte, dann eine Sekunde, die die gesamte Ergebnismenge zurückgibt. Ich kann dann die Dokument-ID verwenden, um zu finden, wo das Dokument in der vollständigen Ergebnismenge erscheint, aber dann nur die Dokumente für die ersten 10 aufzählen.
Gibt es eine Möglichkeit zu erreichen, was ich mit Solr will, ohne zurückzukehren alle 30000 Ergebnisse (sogar die Beschränkung auf die Guid scheint nur zu langsam)?
Dank
Was möchten Sie damit erreichen? Was ist das eigentliche Problem? –
Lucene-Dokument-IDs sind ein Implementierungsdetail, Solr stellt sie nicht zur Verfügung. –
Die Ergebnisse stellen eine paginierte Liste von Benutzern dar, die jeweils ein numerisches "Punkte" -Feld haben. Die Ergebnisse sollten nach diesem "Punkte" -Feld geordnet werden, und ich muss dann wissen, an welcher Stelle Benutzer X in den Ergebnissen erscheint. Über der paginierten Liste kann ich "Du bist an dritter Stelle" oder "Du bist an 321. Stelle" anzeigen. Wenn der aktuelle Benutzer auf der ersten Seite der Ergebnisse ist großartig, aber das Problem kommt, wenn sie nicht sind. Vielen Dank. – robinbetts