-1

Ich greife mit Python auf den Retreive-And-Rank-Dienst zu. Bisher habe ich meine Konfiguration und Dokumente hochgeladen und meinen Ranker in der Relevanzdatei trainiert. Alles, was übrig bleibt, ist vermutlich, einige Abfrageergebnisse (von Solr?) In die "Rang" -Methode meines R-A-R-Objekts zu übertragen.Retrieve and Rank Python: Welche Art von "Antwortdaten" wird an die Rank-Methode übergeben?

Meine Frage: Was genau sind diese Ergebnisse, und in welcher Form kommen sie? Und wie greife ich darauf zu?

Im Moment bin ich Zugriff auf das PySolr Objekt die get_pysolr_client() Methode verwendet wird, dann eine Abfrage suchen und mit den zurückgegebenen Ergebnisse:

answer_data = pysolr.search(query) 
rrv1.rank(<my_ranker_id>, answer_data, top_answers=10) 

Ich tue dies, weil es analog ist zu dem, was IBM hat in der rank() Methode in der Java example. Aber ich erhalte die Fehlermeldung:

Ich bekomme dies, weil PySolr ein "Ergebnisse" -Objekt zurückgibt.

Was sollte ich stattdessen an die rank() -Methode übergeben, damit es funktioniert?

Die Retrieve_and_Rank Spezifikation für den Rang Methode ist wie folgt, und ich denke, dass answer_data eine „Datei-like“ Objekt sein soll:

def rank(self, ranker_id, answer_data, top_answers=10) 

Antwort

0

Eine Abhilfe ist pysolr _send_request Methode aufzurufen ist:

results = pysolr._send_request("GET", path="/fcselect?q=%s&ranker_id=%s&wt=json" % 
           (query_string, ranker_id)) 
for doc in json.loads(results)["response"]["docs"]: 
    print doc 

Dank rishavc auf dW Answers für diese.

Verwandte Themen