Skip to main content

エンタープライズ向けルールとクエリの概要

エンタープライズオペレーターを利用する製品は、設定したフィルタリングルールに基づいてソーシャルデータを提供します。ルールは 1 つ以上の「句」で構成され、句にはキーワード、完全一致のフレーズ、または多数あるエンタープライズオペレーターのいずれかが含まれます。エンタープライズオペレーターを使ってルールの作成を始める前に、以下で説明する構文を確認し、利用可能なオペレーターの一覧に目を通し、ルール構築に関する制約を理解しておいてください。また、「演算の順序」セクションで説明しているように、ルールが論理的にどのように評価されるかというニュアンスも理解しておく必要があります。 複数の句は、「and」ロジックと「or」ロジックの両方で組み合わせることができます。 注意: 「and」ロジックは句同士の間にスペースを入れて指定し、「or」ロジックは大文字の OR を使って指定します。  各ルールは最大 2,048 文字まで指定でき、ポジティブ句 (マッチさせたい条件やフィルタ対象) およびネガティブ句 (除外してマッチさせたくない条件) の数に制限はありません。  

ルールとクエリの構築

キーワードマッチ キーワードマッチは、検索インターフェースで使用するクエリと似ています。たとえば、次のエンタープライズ向けオペレーターを用いたルールは、テキスト本文に “social” という語を含むアクティビティにマッチします。 social 空白による AND (ANDing terms with white space) キーワードをもう 1 つ追加するということは、マッチを見つけるための条件を 1 つ追加するのと同じです。たとえば、次のルールは、テキスト内に “social” と “media” の両方が存在するアクティビティにのみマッチします (順序は不問) ——語と語の間にスペースを入れることは、ブール AND ロジックとして動作します。ルール内に明示的な AND を含めると、そのルールは rules エンドポイントによって拒否されます。 social media 大文字の OR による OR (ORing terms with upper-case OR) 多くのケースでは、ブール OR ロジックが必要になりますが、これも簡単に実現できます。OR 演算子は必ず大文字でなければならず、小文字の ‘or’ は通常のキーワードとして扱われる 点に注意してください。 social OR data 語の否定 (Negating terms) 特定のキーワードを含む結果を除外したい (ブール NOT ロジック) ケースもあります。たとえば、「happy」を含むが、テキスト内に「birthday」を含むものは除外したい場合などです。 social -personality かっこによるグルーピング (Grouping with parentheses) これらのロジックは、かっこを使ったグルーピングで組み合わせることができ、さらに複雑なクエリへと拡張できます。 (social OR data) (academic OR research) -personality -information -university とはいえ、これはほんの導入に過ぎません。上記の例はキーワードのトークン化されたマッチングだけに依存していますが、エンタープライズ製品ではテキストに対して異なる種類のマッチングを行うためのオペレーターも提供しています。 完全一致 (Exact match) "social media research" 部分一致 (Substring match) contains:info 近接マッチ (Proximity match) "social media research"~3 さらに、他のオペレーターを使うことで、テキスト以外にも、ソーシャルデータの固有の側面に基づいてフィルタできます。  ポストを行っているユーザー from:XDeveloeprs アメリカ合衆国コロラド州ボルダーの Pearl St. から 10 マイル以内の位置情報付きツイート point_radius:[-105.27346517 40.01924738 10.0mi] すべてを組み合わせる これらは、上で説明したのと同じ種類のロジックを使ってテキストフィルターと組み合わせることができます。 (social OR data) (academic OR research OR "social media research") point_radius:[-105.27346517 40.01924738 10.0mi] lang:en -personality -information -university

ブール構文

前のセクションの例では、さまざまな種類のブールロジックとグルーピングを使用しました。以下の表で、それぞれの構文と要件について詳しく説明します。 注意: 演算子は肯定にも否定にもなり得ます。 肯定演算子 は、結果に 含めたい ものを定義します。たとえば、has:hashtags 演算子は「ハッシュタグを含むアクティビティが欲しい」という意味になります。 否定演算子 は、結果から 除外したい ものを定義し、上述したブール NOT ロジックを使用して作成します。たとえば、-has:hashtags は「ルールの他の条件にマッチしていても、ハッシュタグを含むアクティビティは除外する」という意味になります。 Premum operator 製品では、正の句と負の句の数に制限はなく、最大長 2,048 文字という制約のみがあります。  

演算の順序

1つのルール内で AND と OR を組み合わせる場合、次の演算の順序によってルールの評価方法が決まります。
  1. AND ロジックで接続された演算子が最初に結合されます
  2. 次に、OR ロジックで接続された演算子が適用されます
例:
  • apple OR iphone ipadapple OR (iphone ipad) と評価されます
  • ipad iphone OR android(iphone ipad) OR android と評価されます
あいまいさをなくし、ルールが意図したとおりに評価されるようにするには、適切な箇所で括弧を用いて語句をまとめてください。例えば:
  • (apple OR iphone) ipad
  • iphone (ipad OR android)

句読点、ダイアクリティカルマーク、大小文字の区別

エンタープライズオペレーターでアクセントやダイアクリティカルマークを含むキーワードまたはハッシュタグのルールを指定した場合、そのダイアクリティカルマークを考慮してポスト本文 (ハッシュタグやキーワード) と照合されます。たとえば、キーワード Diacr**í**tica またはハッシュタグ #cumplea**ñ**os のルールは “Diacrítica” や “#cumpleaños” にはマッチしますが、チルダ付きの í や文字 eñe (ñ) を含まない “Diacritica” や “#cumpleanos” にはマッチしません。 アクセントやダイアクリティカルマークを持つ文字は通常の文字と同様に扱われ、単語境界としては扱われません。たとえば、cumpleaños というルールは、単語 cumpleaños を含むアクティビティにのみマッチし、cumplea、cumplean、os を含むアクティビティにはマッチしません。 すべてのオペレーターは大文字と小文字を区別せずに評価されます。たとえば、ルール Cat は次のすべてにマッチします: “cat”、“CAT”、“Cat”。

PowerTrack ルールタグ

Matching rules」ページで説明しているとおり、各ルールにはタグを付けて作成できます。これらのタグはフィルタリング自体には影響しませんが、App 内でルールを論理的なグループにまとめるために使用できます。各ルールに設定できるタグは 1 つのみで、最大 255 文字までです。タグは、「Matching rules」ページで説明しているとおり、API を介してルールを作成する際に、JSON 形式のルールに含めます。

ルールをJSON形式にする

API経由でストリームにルールを追加または削除するためには、ルールをJSON形式で表現する必要があります。基本的には、各ルールを次の構造に当てはめます。 {"value":"insert_rule_here"} 二重引用符を含むルール ルールが、完全一致やその他の演算子に関連する二重引用符文字 () を含む場合、それらはJSON形式の構造と区別するために、バックスラッシュでエスケープしなければなりません。 "social data" @XDevelopers JSON形式にしたルールは次のようになります。 {"value":"\"social data\" @XDevelopers"} 二重引用符の文字列リテラルを含むルール 完全一致の中で二重引用符文字を文字列リテラルとして含めるには、二重にエスケープする必要があります。たとえば、“R” を囲む二重引用符も含めて、正確なフレーズ “Toys “R” Us” にマッチするルールの場合、プレーンテキストでの表現は次のようになります。 "Toys \"R\" Us" これをJSON形式に変換する場合、次の構造を使用します。 {"value":"\"Toys \\\"R\\\" Us\""} タグ付きのルール 前述のとおり、ルールに任意のタグを付与するには、ルールの値と一緒に追加の tag フィールドを含めるだけです。 {"value":"\"social data\" @XDevelopers","tag":"RULE-TAG-01"} APIリクエストでのフォーマット API経由でストリームにルールを追加または削除する場合、複数のJSON形式のルールはカンマ区切りにし、以下のようにJSONの “rules” 配列でラップする必要があります。 {"rules":[{"value":"from:XDevelopers"},{"value":"\social data\" @XDevelopers","tag":"RULE-TAG-01"}]}

引用ツイートに一致するオペレーター

PowerTrack API と Historical PowerTrack API を使用する場合、以下のオペレーターは、引用されている元のポストと新しい引用ツイートの両方のコンテンツに一致します。 一方、Search API を使用する場合、これらのオペレーターは引用ツイートのコンテンツのみに一致し、引用されている元のポストのコンテンツには一致しません。
  • Keywords
  • Phrases
  • Proximity
  • #hashtags
  • @mentions
  • $cashtags
  • url:
  • url_contains:
  • has:links
  • has:mentions
  • has:hashtags
  • has:media
  • has:symbols
  • is:quote
  • is:reply

Enterprise operators

以下は、PowerTrack および Historical PowerTrack で利用できるオペレーターです。これらの一部は、30-Day および Full-Archive 検索 API でも利用できます。製品ごとの利用可能なオペレーター一覧については、この表を参照してください。  以下は、現在サポートされている言語と、それぞれに対応する BCP 47 言語識別子の一覧です。 例: (@XDevelopers OR to:XDevelopers) lang:es Note: 言語オペレーターは、X によって判定され、ポストの lang 属性として設定される特定のポスト言語に基づいてマッチングを行います。X Entities の JSON 属性の詳細については、HERE を参照してください。ポストの言語を分類できない場合、そのポストの lang には「und」 (undefined/未定義) が設定されます。

プロダクト別のオペレーター

ルールとフィルタリング:エンタープライズ

すべてのエンタープライズ向けオペレーターは、PowerTrack と Historical PowerTrack API で利用できます。ただし、エンタープライズ Search API で利用できるオペレーターはその一部のみであり、その内容はこのページで示しています。 濃い青色のタグは、各エンタープライズ製品で利用可能なオペレーターを示します: PowerTrack Search