Я ничего не могу найти в документах freebase об этом, но кажется, что они ограничивают количество результатов к 100. Например:
[{
"type":"/base/popstra/celebrity",
"name":null
}]
Возвраты только 100 результатов, тогда как
[{
"type":"/base/popstra/celebrity",
return:"count"
}]
Говорит, что существует 6 244 результата. Кто-либо знает, как получить остальную часть их? Я знаю, что могу ограничить запросы некоторым параметром как страна и затем агрегировать результаты, но я предпочел бы что-то меньше hacky.
Для запроса дополнительных результатов можно использовать свойство limit
. Однако выборка больших чисел может привести к тайм-ауту запроса.
Более надежным способом является использование свойства курсора
. Передайте курсор
значение true
. Вы получите пакет результатов, но вы также получите новое значение для курсора
в ответе. Повторите свой запрос, но замените в новом значении курсора
, чтобы получить следующий пакет результатов. Таким образом вы можете получить даже очень большой набор данных.
Дополнительная информация: http://www.freebase.com/docs/mql/ch04.html#envelopeparameters
Коллега помог мне разобраться с этим. Я думал, что должен использовать параметр limit
, но не поставил его в нужное место. Вот как это делается:
[{
"type":"/base/popstra/celebrity",
"name":null,
"limit":300
}]