Fql Limit возвращает меньше результатов, чем ожидалось - PullRequest
2 голосов
/ 26 февраля 2012

Я пытаюсь получить данные из Facebook по запросу fql. Одна из вещей, которые я хочу сделать, - это получать отчет о каждом звонке. Я пытаюсь сделать это командой LIMIT [start], [end], она предполагает вернуть мне записи между этими числами. Вместо получения записей [end] - [start], которые представляют собой общее количество записей, которые предполагается вернуть. Я получаю случайное количество записей, я проверил и могу быть уверен, что я не пытаюсь получить больше записей, чем есть.

Пример LIMIT:

http://graph.facebook.com/fql?q=SELECT actor_id, message,description FROM  stream WHERE source_id =5878435678 Limit 2,10

Предполагается, что будет возвращено 7 записей (отсчет начинается с 0), и я получу только 3 записи. Забавно, что когда я написал вместо 10 50, я получил 26 записей.

Может ли кто-нибудь помочь мне найти способ получения точного количества записей, которые я запрашивал. Танки впереди !!

1 Ответ

12 голосов
/ 26 февраля 2012

Это сообщение в блоге инженеров Facebook объясняет это явление.

http://developers.facebook.com/blog/post/478/

Вот часть, которая касается вашего вопроса ...

Вы можете заметитьчто количество возвращаемых результатов не всегда равно указанному «пределу».Это ожидаемое поведение.Параметры запроса применяются с нашей стороны перед проверкой, чтобы увидеть, являются ли возвращенные результаты видимыми для зрителя.Поэтому возможно, что вы получите меньше результатов, чем ожидалось.

Ниже приведена лучшая часть записи в блоге ...

Это также означает, чтокогда вы вручную создаете свои собственные запросы, вы должны знать, что с некоторыми таблицами и соединениями, если вы указываете параметр «смещение», N-й результат, на который вы указываете, может не возвращаться в ваших результатах (как 3-й результат в шаге2 изображения выше).Это может сделать пейджинг сложным и запутанным.

Лол, ты убиваешь меня, Фейсбук !!!Почему бы не сделать это прямым и последовательным, а не «трудным и запутанным».?!?!?

...