Как классифицировать результаты потокового API в Твиттере

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

Мой вопрос: как я могу различать эти результаты твитов, чтобы я мог организовать вывод для каждого клиента? это означает, что если клиент A отслеживает «его компанию», как я могу классифицировать результаты твитов из потокового API в рамках проекта клиента A.

Я хочу классифицировать при вставке в базу данных, должен ли я просто использовать preg_match для каждого результата, чтобы определить связанное с ним ключевое слово? каковы лучшие практики для этого?


person Alon Carmel    schedule 10.01.2011    source источник


Ответы (1)


Вот как бы я подошел к этому:

  • Используйте track Streaming API для получения результатов по всем ключевым словам (для всех клиентов).
  • Определите, какие ключевые слова находятся в каждом статусе, используя strpos() (или аналогичный, не не вижу необходимости в регулярном выражении).
  • Добавьте статус в базу данных, связанный со всеми подходящими ключевыми словами.
  • Свяжите учетную запись клиента с конкретными ключевыми словами, которые они хотят отслеживать.

Это позволяет нескольким клиентам отслеживать одни и те же ключевые слова. Это также позволяет статусу иметь несколько ключевых слов. Обе ситуации кажутся вероятными.

person Tim Lytle    schedule 11.01.2011
comment
Это именно то, что я сделал. просто вопрос. я ушел с клиентом, который я вытащил все слова его отслеживания. Это те же самые слова, с которыми связаны твиты. - person Alon Carmel; 01.02.2011
comment
Как мне получить твиты, в которых есть соответствующие слова, связанные с ними, в одном вызове sql? И вар = вар И вар = вар ? - person Alon Carmel; 01.02.2011
comment
@Alon Что-то вроде WHERE keyword = 'keyword1' OR keyword = 'keyword2' будет работать, но может быть проще использовать подзапрос: WHERE keyword IN (SELECT keyword FROM keywords WHERE client_id = 'client_id'). Я бы описал структуру вашей таблицы в новом вопросе, есть много пользователей SO с большим опытом работы с SQL, чем у меня. - person Tim Lytle; 02.02.2011