開始使用
語言
串流表示式和數學表示式是在 SolrCloud 內部執行的函數語言。這些語言包含設計為可組合以形成程式設計邏輯的函數。
串流表示式是傳回 Tuple 串流的函數。可以組合串流表示式函數以形成轉換管線。此管線以串流來源開始,例如 search
,它會啟動 Tuple 串流。一個或多個串流裝飾器(例如 select
)會包裝串流來源並轉換 Tuple 串流。
數學表示式是操作並傳回基本類型和記憶體中陣列與矩陣的函數。數學表示式的核心使用案例是執行數學運算和視覺化。
可以結合串流表示式和數學表示式,以在 SolrCloud 集合中搜尋、取樣、彙總、轉換、分析和視覺化資料。
執行
Solr 的 /stream
請求處理器執行串流表示式和數學表示式。此處理器會編譯表示式、執行表示式邏輯並傳回 JSON 結果。
管理 UI 串流面板
執行串流表示式和數學表示式最簡單的方式是透過 Solr 管理 UI 中的串流畫面。
下面的螢幕截圖顯示了範例 search
串流表示式

下面的螢幕截圖顯示了範例 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 的面板。

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