スカラー数学

最も基本的な数式はスカラー式です。スカラー式は、数値に対して数学演算を実行します。

たとえば、以下の式は2つの数値を加算します

add(1, 1)

この式を/streamハンドラに送信すると、以下のレスポンスが返されます

{
  "result-set": {
    "docs": [
      {
        "return-value": 2
      },
      {
        "EOF": true,
        "RESPONSE_TIME": 2
      }
    ]
  }
}

数式はネストすることができます。たとえば、以下の式では、`add`関数の出力は`pow`関数の2番目のパラメータになります

pow(10, add(1,1))

この式は、以下のレスポンスを返します

{
  "result-set": {
    "docs": [
      {
        "return-value": 100
      },
      {
        "EOF": true,
        "RESPONSE_TIME": 0
      }
    ]
  }
}

視覚化

Zeppelin-Solrインタープリターでは、スカラー数学関数を入力するだけで、結果が表形式で表示されます。

scalar

数値視覚化を使用して、数値をテキストとアイコンで視覚化できます。

num

ストリーミングスカラー数学

スカラー数式は、`select`ストリームデコレータを使用することで、ストリーム内の各タプルにも適用できます。 `select`関数は、タプルのストリームをラップし、各タプルに含めるフィールドを選択します。 `select`関数は、数式を使用して新しい値を計算し、発信タプルに追加することもできます。

以下の例では、`select`式が検索式をラップしています。 `select`関数は、`response_d`フィールドを選択し、`mult`数式を使用して`new_response`という新しいフィールドを計算しています。

`mult`式の最初のパラメータは`response_d`フィールドです。 2番目のパラメータはスカラー値10です。これは、各タプルの`response_d`フィールドの値に10を掛けます。

select(search(testapp, q="*:*", fl="response_d", sort="response_d desc", rows="3"),
       response_d,
       mult(response_d, 10) as new_response)

この式を/streamハンドラに送信すると、以下のレスポンスが返されます

{
  "result-set": {
    "docs": [
      {
        "response_d": 1080.3692514541938,
        "new_response": 10803.692514541937
      },
      {
        "response_d": 1067.441598608506,
        "new_response": 10674.41598608506
      },
      {
        "response_d": 1059.8400090891566,
        "new_response": 10598.400090891566
      },
      {
        "EOF": true,
        "RESPONSE_TIME": 12
      }
    ]
  }
}

視覚化

上記の式は、Zeppelin-Solrを使用して表として視覚化できます。

stream

折れ線グラフ視覚化のいずれかに切り替えることで、2つの変数をx軸とy軸にプロットできます。

line

その他の数式関数

数式ライブラリでは、以下のスカラー数式関数を使用できます。

`abs`、`add`、`div`、`mult`、`sub`、`log`、`log10`、`pow`、`mod`、`ceil`、`floor`、`sin`、`asin`、`sinh`、`cos`、`acos`、`cosh`、`tan`、`atan`、`tanh`、`round`、`precision`、`recip`、`sqrt`、`cbrt`