Skip to main content
Filtered stream エンドポイントは、ストリームに適用された一連のルールに一致する投稿を配信します。ルールは、さまざまな投稿属性に対して一致を行う演算子で構成されます。 複数のルールを POST /tweets/search/stream/rules エンドポイントで追加できます。ルールを追加して GET /tweets/search/stream で接続すると、あなたのルールに一致する投稿だけが配信されます。ルールの追加や削除のために切断する必要はありません。

ルールの制限

ルールの数の制限はアクセスレベルに依存します。具体的な制限についてはfiltered stream のはじめにを参照してください。

演算子の種類: standalone と conjunction-required

Standalone 演算子 は単独でも、他の演算子(conjunction-required の演算子を含む)と組み合わせても使用できます。 たとえば、#hashtag は standalone 演算子であるため、次のルールは動作します:
Conjunction-required 演算子 は単独でルールとしては使用できず、少なくとも 1 つの standalone 演算子を含む場合にのみ使用できます。これらの演算子を単独で使うと非常に大量の投稿に一致してしまうためです。 たとえば、以下のルールは conjunction-required 演算子のみを含んでいるため、サポートされていません:
standalone 演算子(たとえばフレーズ "X data")を追加すると、ルールは正しく動作します:
embedding_threshold: 演算子(セマンティックな embedding: ルールと共に使用)も conjunction-required です。

ブール演算子とグルーピング

以下のツールを使って複数の演算子を組み合わせられます:
否定に関する注意
  • sample:embedding: を除き、すべての演算子は否定可能
  • 演算子 -is:nullcast は必ず否定して使用する必要がある
  • 否定演算子は単独では使用できない
  • グループ化された演算子は否定しないでください。skiing -(snow OR day OR noschool) の代わりに、skiing -snow -day -noschool を使用します
  • -embedding:"query" の記述はサポートされていません

演算の順序

AND と OR を組み合わせる場合:
  1. AND ロジックで接続された演算子が最初にまとめられます
  2. 次に、OR ロジックで接続された演算子が適用されます
例: 不確実性を排除するため、括弧を使用してください:

句読点、発音区別符、大文字小文字の区別

発音区別符: アクセント付きの Filtered stream ルールは、アクセントを含む投稿にのみ一致します。たとえば diacríticadiacrítica に一致しますが、diacritica には一致しません 大文字小文字の区別: すべての演算子は大文字小文字を区別しません。catcatCATCat に一致します。
Search Posts は挙動が異なります検索クエリを組み立てる場合、アクセント付きのキーワードはアクセントの有無にかかわらず投稿に一致します。たとえば DiacríticaDiacríticaDiacritica の両方に一致します。

Quote Tweet の一致

Filtered stream を使用する場合、演算子は Quote Tweet の内容引用元のオリジナル投稿の内容の両方に一致します。
Search Posts は挙動が異なり、Quote Tweet の内容にのみ一致し、オリジナル投稿には一致しません。

具体性と効率

単一のキーワードやハッシュタグのような広範な演算子の使用は推奨されません。大量の投稿に一致し、接続をすぐに消費してしまうためです。
効果的なルールを構築するためのヒント:
  1. 具体的に始めて、その後広げる — 関連する結果を返すターゲットを絞ったルールを作成
  2. 複数の演算子を使う — 演算子を組み合わせて結果を絞り込む
  3. 文字数に注意 — ルール文字列全体が上限にカウントされます
進化の例:

ルールを反復的に構築する

ステップ 1: 基本的なルールから始める

ステップ 2: 結果を基にテストして絞り込む

多くの言語の投稿があることに気付きました。言語フィルターを追加します:
誕生日のお祝いが含まれています。それらと Retweet を除外します:

ステップ 3: カバレッジを広げる

より多くの感情を捉えたいので、関連キーワードを追加します:

ステップ 4: トレンドに合わせて調整する

Holiday の投稿が出てきました。除外します:

ルールの追加と削除

POST /2/tweets/search/stream/rules を使用してルールを追加または削除します。

ルールの追加

add JSON ボディを value(ルール)と任意の tag(一致した投稿を識別)と共に送信します:

ルールの削除

削除するルール ID を含む delete JSON ボディを送信します:

ルールの例

自然災害を追跡する

ハリケーン Harvey に関する気象機関からの投稿に一致:

#nowplaying のセンチメント分析

ポジティブなセンチメント:
ネガティブなセンチメント:

Post annotations を使用する

context: 演算子を使用して、画像を含む日本語のペット関連(猫以外)の投稿を検出します: まず、Post lookuptweet.fields=context_annotations で使用し、domain.entity ID を特定します:
  • Cats: domain 66, entity 852262932607926273
  • Pets: domain 65, entity 852262932607926273

エンベディングを使用したセマンティックマッチング(Enterprise)

embedding: 演算子を使用して、キーワードではなく概念的意味で投稿を一致させます。これには Enterprise + Embedding ティアが必要です。
構造的な演算子と組み合わせて精度を高めます:
詳細とベストプラクティスは演算子リファレンスを参照してください。

次のステップ

演算子リファレンス

利用可能な演算子の完全なリスト

Filtered stream クイックスタート

ストリームに接続

サンプルコード

複数言語のコード例