2011-02-12 31 views
0

我不斷收到搜索查詢太多字符的Twitter 403錯誤。Twitter API搜索 - 如何檢查查詢字符長度?

search = Twitter::Search.new.contains("#{self.home_team.long_name} #{self.away_team.long_name} win OR lose") 
    search.language("en").no_retweets.since_date(since) 

如何計算查詢有多少個字符,所以我跳過試圖對其執行搜索?例如,這一個是156個字符:

GET https://search.twitter.com/search.json?q=Middle%20Tennessee%20State%20Blue%20Raiders%20Florida%20International%20Golden%20Panthers%20win%20OR%20lose%20-rt%20-from%3Aespn&&lang=en&since=2011-02-09: 403: Sorry, your query is too complex. Please reduce complexity and try again. 

回答

0

我不認爲問題是您的查詢長度,這是查詢的複雜性。嘗試降低使用更嚴格的查詢或更簡單的查詢的結果的複雜性或數量。這通常發生在基於地理位置的查詢中,例如near,半徑太大並且導致計算複雜或大型查詢。

如果你還是想算的查詢長度,你也許可以通過向上計數的參數和密鑰,這樣得到的長度的良好估計:

search = Twitter::Search.new.contains(....).language('en') 
search.query.inject(0){ |sum, obj| sum += obj[0].size+obj[1].size+1 } 

這應該給你的長度鍵+值+您的查詢符號。