2010-02-23 17 views
5

non riesco a trovare nulla nella documentazione di Freebase su di esso, ma sembra che limitano il numero di risultati da 100. Ad esempio:come aumentare limitare risultato freebase API

[{ 
    "type":"/base/popstra/celebrity", 
    "name":null 
}] 

ritorni a soli 100 risultati, mentre

[{ 
    "type":"/base/popstra/celebrity", 
    return:"count" 
}] 

Dice che ci sono 6244 risultati. Qualcuno sa come ottenere il resto di loro? So che posso limitare le query secondo alcuni parametri come il Paese e quindi aggregare i risultati, ma preferirei qualcosa di meno hacky.

risposta

8

È possibile utilizzare la proprietà limit per richiedere maggiori risultati. Tuttavia, il recupero di grandi numeri può fornire un timeout della query.

Un modo più affidabile consiste nell'utilizzare la proprietà cursor. Passa al valore cursor di true. Riceverai una serie di risultati, ma riceverai anche un nuovo valore per cursor nella risposta. Ripeti la query, ma sostituisci il nuovo valore cursor per ottenere il successivo batch di risultati. In questo modo puoi recuperare anche un insieme di dati molto grande.

Maggiori informazioni: http://www.freebase.com/docs/mql/ch04.html#envelopeparameters

+0

Usando il loro esempio ho ricevuto il seguente messaggio "Il cursore chiave è una parola riservata", non sembra funzionare più. – Domenic

+0

Funziona ancora. Il cursore si posiziona sulla busta, non nella query stessa (seguire il collegamento fornito da Peter alla documentazione). –

+0

Ah! Grazie Peter, mi stavo chiedendo come ottenere il valore del cursore nella risposta! –

0

Un collaboratore mi ha aiutato a capirlo. Ho pensato di utilizzare il parametro limit ma non l'ho inserito nel posto giusto. Ecco come si fa:

[{ 
    "type":"/base/popstra/celebrity", 
    "name":null, 
    "limit":300 
}] 
+0

Si dovrebbe aggiornare il proprio OP o commentare su di esso, invece di fornire una risposta! –

Problemi correlati