はじめに
言語
ストリーミング式と数式は、SolrCloud内で実行される関数言語です。これらの言語は、プログラミングロジックを形成するために設計された関数の集合から構成されています。
ストリーミング式は、タプルのストリームを返す関数です。ストリーミング式の関数は、変換パイプラインを形成するように構成できます。パイプラインは、タプルのストリームを開始するsearch
などのストリームソースから始まります。select
などの1つ以上のストリームデコレータは、ストリームソースをラップしてタプルのストリームを変換します。
数式は、プリミティブ、メモリ内の配列、行列を操作し、返す関数です。数式の主要なユースケースは、数学演算と可視化の実行です。
ストリーミング式と数式を組み合わせて、SolrCloudコレクション内のデータの検索、サンプリング、集計、変換、分析、可視化を行うことができます。
実行
Solrの/stream
リクエストハンドラは、ストリーミング式と数式を実行します。このハンドラは式をコンパイルし、式のロジックを実行し、JSONの結果を返します。
管理UIストリームパネル
ストリーミング式と数式を実行する最も簡単な方法は、Solr管理UIのストリーム画面を使用することです。
下記のスクリーンショットに、サンプルのsearch
ストリーミング式を示します。

下記のスクリーンショットに、サンプルのadd
数式を示します。

Curl の例
/stream
ハンドラのHTTPインターフェースを使用して、ストリーミング式のリクエストを送信し、レスポンスを取得できます。
Curlは、結果をディスクにスプールする必要がある場合、またはSolr管理ストリームパネルにとって大きすぎる場合に、ストリーミング式を実行するための便利なツールです。以下は、/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}]}
}
可視化
このガイド内の視覚化は、Zeppelin-Solr インタープリタを使用したApache Zeppelinによって実行されました。
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にアタッチされている任意のコレクションをクエリするように選択できます。