開始使用

語言

串流表示式數學表示式是在 SolrCloud 內部執行的函數語言。這些語言包含設計為可組合以形成程式設計邏輯的函數。

串流表示式是傳回 Tuple 串流的函數。可以組合串流表示式函數以形成轉換管線。此管線以串流來源開始,例如 search,它會啟動 Tuple 串流。一個或多個串流裝飾器(例如 select)會包裝串流來源並轉換 Tuple 串流。

數學表示式是操作並傳回基本類型和記憶體中陣列與矩陣的函數。數學表示式的核心使用案例是執行數學運算和視覺化。

可以結合串流表示式和數學表示式,以在 SolrCloud 集合中搜尋、取樣、彙總、轉換、分析視覺化資料。

執行

Solr 的 /stream 請求處理器執行串流表示式和數學表示式。此處理器會編譯表示式、執行表示式邏輯並傳回 JSON 結果。

管理 UI 串流面板

執行串流表示式和數學表示式最簡單的方式是透過 Solr 管理 UI 中的串流畫面

下面的螢幕截圖顯示了範例 search 串流表示式

search

下面的螢幕截圖顯示了範例 add 數學表示式

add

Curl 範例

/stream 處理器的 HTTP 介面可以用來傳送串流表示式請求並擷取回應。

當結果需要假脫機到磁碟或對於 Solr 管理串流面板來說太大時,Curl 是執行串流表示式的實用工具。以下是傳送至 /stream 處理器的 curl 命令範例。

curl --data-urlencode 'expr=search(enron_emails,
                                   q="from:1800flowers*",
                                   fl="from, to",
                                   sort="from asc")' https://127.0.0.1:8983/solr/enron_emails/stream

以下顯示了此請求的串流處理器傳回的 JSON 回應

{"result-set":{"docs":[
   {"from":"1800flowers.133139412@s2u2.com","to":"lcampbel@enron.com"},
   {"from":"1800flowers.93690065@s2u2.com","to":"jtholt@ect.enron.com"},
   {"from":"1800flowers.96749439@s2u2.com","to":"alewis@enron.com"},
   {"from":"1800flowers@1800flowers.flonetwork.com","to":"lcampbel@enron.com"},
   {"from":"1800flowers@1800flowers.flonetwork.com","to":"lcampbel@enron.com"},
   {"from":"1800flowers@1800flowers.flonetwork.com","to":"lcampbel@enron.com"},
   {"from":"1800flowers@1800flowers.flonetwork.com","to":"lcampbel@enron.com"},
   {"from":"1800flowers@1800flowers.flonetwork.com","to":"lcampbel@enron.com"},
   {"from":"1800flowers@shop2u.com","to":"ebass@enron.com"},
   {"from":"1800flowers@shop2u.com","to":"lcampbel@enron.com"},
   {"from":"1800flowers@shop2u.com","to":"lcampbel@enron.com"},
   {"from":"1800flowers@shop2u.com","to":"lcampbel@enron.com"},
   {"from":"1800flowers@shop2u.com","to":"ebass@enron.com"},
   {"from":"1800flowers@shop2u.com","to":"ebass@enron.com"},
   {"EOF":true,"RESPONSE_TIME":33}]}
}

視覺化

本指南中的視覺化是使用 Apache Zeppelin 搭配 Zeppelin-Solr 解譯器執行的。

Zeppelin-Solr 解譯器

適用於 Solr 的 Apache Zeppelin 解譯器允許在 Zeppelin 中執行串流表示式和數學表示式,並將結果視覺化。如需安裝和設定 Zeppelin-Solr 的指示,請參閱專案的 GitHub 存放庫:https://github.com/lucidworks/zeppelin-solr

安裝後,可以設定 Solr 解譯器以連線至您的 Solr 執行個體。以下螢幕截圖顯示了設定 Zeppelin-Solr 的面板。

zepconf

設定 solr.baseUrlsolr.collection 以指向要傳送串流表示式和數學表示式以進行執行的位置。solr.collection 只是執行集合,不需要保存資料,儘管它可以保存資料。串流表示式可以選擇查詢附加至與執行集合相同 SolrCloud 的任何集合。

zplot

串流表示式結果集可以由 Zeppelin-Solr 自動視覺化。

數學表示式結果需要使用 zplot 函數設定格式以進行視覺化。此函數支援繪製向量矩陣機率分佈2D 叢集結果

本指南中有許多範例說明如何將串流表示式和數學表示式視覺化。