Twitter 検索 API が返したページ数を特定する良い方法はありますか? または、返された値の数を特定し、それをページあたりのツイット数で割る方法はありますか?
4 に答える
いいえ。API はこれを公開しません。便利な機能ではないからではなく、それを提供することのパフォーマンス面のためです。
結果の完全な数を取得するには、検索アルゴリズムが各クエリのインデックスを完全に反復処理する必要があります。次に、2 ページ目に戻ると、2 ページ目以降のインデックスを反復処理して、カウントを再度取得する必要があります。これは、すべてのデータを取得すると、予想される O(n) ではなく O(n^2) になることを意味します (N ページのそれぞれを返すには、後のすべてのページをスキャンする必要があるため)。
ほとんどのリクエスタは数ページの結果しか必要としないため、クエリが部分的な結果のみを返し、インデックスへのポインタだけを使用して中断した時点から検索を続行できるようにすることが、クエリの一般的な最適化です。
これらの理由から、大規模なページ分割された API のほとんどは同様の方法で動作します。正確なカウントを取得するには、ページをループして、クエリにインデックスを完全に反復させる必要があります。これにはリモート サービスのコストが高くつきます。また、何度も戻ってくるようにすることで、サービスはクエリを適切に抑制できるため、他のユーザーに悪影響を与えることはありません。
したがって、空のクエリ結果が提供されるまで、ページをループする可能性があります。
ページの総数は、ページごとに返されるツイートの数(最大 100)を制御するrppパラメータによっても異なる可能性があることに注意してください。
検索 APIのドキュメントによると、ページパラメータは、合計で最大 1,500 件までのページのみを返します。
いいえ、結果にはページ数は含まれていません。ATOMデータには、その要素がなくなるまで繰り返したどることができる「次のページ」要素が含まれています。
<link type="application/atom+xml" rel="next" href="http://search.twitter.com/search.atom?lang=en&max_id=1775692928&page=11&q=YOURQUERY"/>