純量數學

最基本的數學表達式是純量表達式。純量表達式對數字執行數學運算。

例如,下面的表達式將兩個數字相加

add(1, 1)

當此表達式傳送到 /stream 處理器時,它會回應

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

數學表達式可以巢狀。例如,在下面的表達式中,add 函數的輸出是 pow 函數的第二個參數

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 欄位。第二個參數是純量值 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

透過切換到其中一個折線圖視覺化,可以在 x 軸和 y 軸上繪製兩個變數。

line

更多純量數學函數

以下純量數學函數可在數學表達式庫中使用

absadddivmultsubloglog10powmodceilfloorsinasinsinhcosacoscoshtanatantanhroundprecisionrecipsqrtcbrt