как увеличить лимит результатов Freebase API - PullRequest
5 голосов
/ 23 февраля 2010

Я не могу найти ничего в документах freebase об этом, но кажется, что они ограничивают количество результатов до 100. Например:

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

Возвращает только 100 результатов, тогда как

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

говорит, что есть 6244 результатов.Кто-нибудь знает, как достать остальных?Я знаю, что могу ограничить запросы некоторым параметром, таким как страна, и затем агрегировать результаты, но я бы предпочел что-то менее хакерское.

Ответы [ 2 ]

8 голосов
/ 25 февраля 2010

Вы можете использовать свойство limit для запроса дополнительных результатов. Однако выборка больших чисел может дать вам тайм-аут запроса.

Более надежный способ - использовать свойство cursor. Передайте в cursor значение true. Вы получите пакет результатов, но вы также получите новое значение для cursor в ответе. Повторите запрос, но введите новое значение cursor, чтобы получить следующий пакет результатов. Таким образом, вы можете получить даже очень большой набор данных.

Подробнее: http://www.freebase.com/docs/mql/ch04.html#envelopeparameters

0 голосов
/ 23 февраля 2010

Коллега помог мне понять это. Я думал, что должен использовать параметр limit, но я не поставил его в нужное место. Вот как это делается:

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