2013-03-11 2 views
-2

Twitter에서 특정 URL을 추적해야하는 요구 사항이 있습니다.Mongodb에 트윗을 저장하십시오.

1) 트위터 트랙 파라미터 부분 URL 패턴을 특정 할 수있다? 예 : 내가이 포함됩니다 http://abc.co/를 포함하는 모든 URL을 검색하려면 http://abc.co/122, http://abc.co/456 등이 트위터 스트림 API와 수 있습니까?

2) MongoDB를에 모든 트윗을 저장하는 효율적인 방법은 무엇입니까? 트윗은 분석 목적으로 사용됩니다.

나는 스칼라 2.10 및 MongoDB를

을 사용하고

업데이트 : 좋아, 일부 Iteratee 개념을 이해 파고 후, 나는 Iteratee 위

WS.url("https://stream.twitter.com/1.1/statuses/filter.json?track=" + term) 
    .sign(OAuthCalculator(Twitter.KEY, tokens)) 
    .get(_ => printingIteratee) 


def printingIteratee = Iteratee.foreach[Array[Byte]] { chunk => 
    val json = Json.parse(new String(chunk)) 
    val user = (json \ "user" \ "screen_name").as[String] 
    val content = (json \ "text").as[String] 

    println("user " + user) 
    println("content " + content) 

} 

테스트입니다 따를 빠른 테스트를 함께 넣어 가지고있는 부작용이고 아무것도 반환하지 않습니다.

나는 배열 [바이트]을 소요하여 MongoDB에 저장하는 객체를 생성하는 Iteratee을 마련하려합니다. Iteratee.fold와 몇 가지 메소드를 살펴 보았지만 MongoDB에 저장할 수있는 Array [Byte]를 생성하고 (case 클래스 Tweet과 같은) 객체를 생성하는 Iteratee를 생성하는 방법을 아직 잘 모릅니다. 그러한 Iteratee를 작성하는 데 도움이되는 정보가 있으면 알려 주시면 감사하겠습니다.

+0

은 지금까지 # 2는 당신이 [코드 검토]에 게시 수를 최적화하기 위해 다음 코드를 작성해야한다에 관한 한 (http://codereview.stackexchange.com/는) – EECOLOR

+0

# 2는 또한 매우 유사하다하여 다른 질문 [로컬 데이터 저장소에 저장, 지속적으로 실시간 트윗을 수집] (http://stackoverflow.com/questions/15280565/collect-real-time-tweets-continuously-store-into-local-datastore) – EECOLOR

답변

1

The documentation 상태 :

URL은 전체 도메인과 경로가 일치하는 URL이 포함 된 트윗에 대한 트랙 쿼리에 포함되어야 함을 의미하는 일치의 목적을 위해 단어로 간주됩니다.

example.comSomeday I will visit example.com 일치하지만 하위의 나는 그것의 모든 도메인을 추적하는 것은 불가능 말할 수있는 지금까지 There is no example.com/foobarbaz

일치하지 않습니다 :

은 또한 그들이 말하는 테이블을 포함 도메인.

+0

감사 EECOLOR. Scala에서 Futures, Promise 등이 어떻게 작동하는지 배우고 있으며 여기서는 코드를 작성하기 전에 디자인 부분에서 다른 사람들로부터 지침을 구하려고 노력 중입니다. 실시간 트윗을 수집하고 실시간으로 MongoDB에 저장하려면 스칼라에서 어떻게 디자인하겠습니까? 다시 말하지만, Futures, Promise, Streams 등을 처음 접해 보았습니다. 약간의 안내가 도움이 될 것입니다. – user2066049

+0

[future and promises]에 대한 문서 (http://docs.scala-lang.org/overviews/core/futures.html)가 도움이 될 수 있습니다. [이 프로젝트] (https://github.com/Rhinofly/GitHubRawFileProxy/blob/master/app/controllers/Application.scala) 파일에는 예제가 들어 있습니다. 새로운 것을 처음 접한다면 뭔가를하려고하지 마십시오. 느낌과 이해를 얻으려면 함께 해킹하세요. 그런 다음 코드를 버리고 얻은 지식으로 디자인하십시오. 여기에 특정 문제가 발생하면 StackOverflow가 구체적인 질문에 답하기에 완벽한 장소입니다. – EECOLOR

관련 문제