Как я мог бы использовать FQL для запроса всех событий без использования индексируемого столбца, который помечен *

#facebook

#Facebook

Вопрос:

У меня есть проблема, которую нужно решить.
Я хочу запросить все события, и я хочу найти конкретную строку.

Код FQL выглядит следующим образом:

ВЫБЕРИТЕ eid, имя, местоположение, start_time, end_time ИЗ события, ГДЕ
strpos(нижний (местоположение), ‘test’) >=0

Когда я использовал этот код FQL, всегда возникала ошибка.
Сообщение об ошибке «Ваше утверждение не подлежит индексации. Предложение WHERE должно содержать индексируемый столбец. Такие столбцы отмечены * в таблицах, связанных сhttp://developers.facebook.com/docs/reference/fql«

Пожалуйста, изложите мне свою точку зрения ~ спасибо 🙂

Ответ №1:

Что ж, сообщение об ошибке понятно:

Ваше утверждение не подлежит индексации. Предложение WHERE должно содержать индексируемый столбец. Такие столбцы отмечены * в таблицах, связанных сhttp://developers.facebook.com/docs/reference/fql

Так просто ваш подход не сработает.

Редактировать:
Чтобы дополнительно объяснить, почему это невозможно:

Facebook имеет дело с «более чем 900 миллионами объектов, с которыми взаимодействуют люди (страницы, группы, события и страницы сообщества)». ссылка.

Таким образом, в основном предоставление вам (всем разработчикам приложений) возможности поиска по ВСЕМ страницам, событиям, группам … и т.д. Определенно приведет к сбою системы. Вот почему эти «индексируемые» поля выбраны тщательно.

Например, если вы хотите искать события по «местоположению», то эти события должны быть «как-то» связаны с вашим приложением. Например, созданный вашим приложением, и вы должны где-то хранить их идентификаторы, чтобы что-то подобное работало:

 SELECT eid, name, location, start_time, end_time FROM event WHERE
strpos(lower(location),'test') >=0 AND eid IN (ids_from_your_db)
  

Комментарии:

1. Да ~ Я знаю, если я хочу найти некоторые события, которые содержат определенную строку, а индекс uid нестабилен. Я хочу найти решение для решения этой проблемы.