Поиск в хронике пользователя Facebook

Я выполняю этот запрос FQL для поиска сообщений на стене на моей временной шкале:

https://graph.facebook.com/fql?q=SELECT+message+FROM+stream+WHERE+source_id=me()%20AND+strpos(message,'metallica')+>0&access_token=XXXX

(Извините за ссылку, она не выглядела красиво)

Разве это не должно возвращать все имеющиеся у меня обновления статуса, включающие строку «metallica»? Я делаю что-то неправильно? Старые посты (1-2 года назад) не возвращаются. Это потому что:

Каждый запрос таблицы потока ограничен предыдущими 30 днями или 50 сообщениями, в зависимости от того, что больше, однако вы можете использовать зависящие от времени поля, такие как created_time, вместе с операторами FQL (такими как ‹ или >), чтобы получить гораздо больший диапазон сообщения.


person Slethron    schedule 03.02.2012    source источник
comment
Бьюсь об заклад, единственная причина, по которой они ограничивают это, заключается в том, чтобы люди не могли искать лучше, чем они. Это, и это съело бы МНОГО обработки и пропускной способности.   -  person Ray    schedule 09.03.2013


Ответы (1)


Я прочитал статью в блоге о том, как работают запросы Facebook (http://developers.facebook.com/blog/post/478/).

Скажем, например, я запрашиваю SELECT post_id, message FROM stream WHERE source_id=me() AND comments.count > 50 LIMIT 10

  1. Первоначальное получение элементов потока ограничено 10 исключительно в зависимости от того, что он может получить, используя индексированные поля (отмеченные звездочкой на их страницах документации), а также указанный вами LIMIT. Помните, что это самые последние элементы потока.
  2. Затем добавление частей WHERE отфильтровывается из этих 10, поэтому, если у вас был только 1 пост из этих 10 с более чем 50 комментариями, вы получите 1 результат. Это отстой, верно?

Я считаю, что максимальный лимит составляет 5000, так что это будет лучшим выбором для получения ваших постов Metallica. Однако даже в этом случае Graph API кажется ограниченным в том, как далеко он уходит. Некоторые люди посмотрели и обнаружили, что там есть сообщения, относящиеся только к 2010 году, я не могу пройти дальше апреля 2009 года. Возможно, у меня меньше сообщений в год, чем у других, и это может быть основано на количестве сообщений, а не на дате для того, сколько API будет хранить.

person DMCS    schedule 03.02.2012
comment
Спасибо за предложение по ограничению, я устанавливаю свой лимит на 5000 и могу увеличить его до июля 2010 года. Не совсем так старо, как хотелось бы, но, думаю, это лучше, чем ничего. - person Slethron; 06.02.2012