-
Notifications
You must be signed in to change notification settings - Fork 39
KQ_Expressions
フィルタクエリは、ツイートを選別するためのクエリです。
省略することもできますが、その場合は () を指定したのと同一になります。
フィルタクエリは、式を組み合わせ、最終的に得られる結果が Boolean になるように記述します。
式は、項と演算子の組み合わせです。項は、たとえばtext
であったり"文字列"
であったり、1234567890
であったりします。
演算子は、+
, contains
, ==
などです。
たとえば、 where text contains "Krile"
は contains
が 両側の String を比較し、Boolean を返すため正しいクエリです。
しかし、 where rts + 5
は +
が 両側の Numeric を足して Numeric を返すため、正しいクエリではありません。
フィルタクエリには、以下の型が存在します。
- Boolean - True, False の2つの値を持つ型です。フラグ型の項(
is_verified
など)がこの型の値を返すほか、演算子による演算結果の多くもこの型となります。 - Numeric - 数値です。
id
など数値を持つ項が返すほか、12345678
など数値を書いた場合や、@screen_name
記法を用いた場合などもこの型に変換されます。 - String - 文字列です。
text
など文字列を持つ項や、"文字列"
などを記述するとこの型となります。 - Set - 数値の集合です。
our
など複数のユーザーIDが利用可能な項がこの型となります。
項によっては、複数の型に変換可能なものが存在します。
たとえば、favs
、rts
などはNumericとして演算するときは被リツイート数、Setとして演算するときはリツイートしたユーザIDの
集合となります。
これらの型の選択は、演算子がどの型をサポートしているかに依存します。
たとえば、rts
において、 rts contains us
の場合、演算子contains
の左辺はSetであることが要求されるためSetとして演算されますが、
rts > 5
の場合は>
の両辺がNumericである必要が有るためNumericとして演算されます。
また、演算子も複数の型をサポートするものがあります。
たとえば contains は、左辺がSetであるとき右辺にはSetかNumericが指定可能です。
しかし、左辺がStringであるときは右辺にはStringだけが指定可能です。
このあたりは、 Expressions - Operators の各演算子の例をご覧いただくと一番手っ取り早く理解できるかと思います。
- Expressions - Operators - フィルタにおける各種演算子です。
- Expressions - Values And Variables - フィルタ表現に利用可能な変数・値についてです。
- Expressions - Account Object - 値によって表現されるアカウントオブジェクトについてです。
- Expressions - User Object - 変数によって表現されるユーザオブジェクトについてです。