SolrとZeppelinによる可視化
![](https://blog.splout.co.jp/wp-content/uploads/2022/05/Solr_Logo.png)
Zeppelinを使えばクエリの結果を簡単に可視化できるので、色々試してみます。
サンプルデータとしていつもの通り大阪市の施設情報を利用します。こんな感じのデータです。
$ curl 'http://localhost:8983/solr/test1/select?omitHeader=true&fl=name_str%2Ctype_str%2Carea_str%2Caddress_str%2Caddress_p&indent=true&rows=3&q=*%3A*' { "response":{"numFound":9238,"start":0,"numFoundExact":true,"docs":[ { "address_p":"34.6164938333333,135.438210722222", "name_str":["軽自動車検査協会大阪主管事務所"], "type_str":["官公庁"], "area_str":["住之江区"], "address_str":["住之江区南港東3-4-62"]}, { "address_p":"34.6190439722222,135.442191833333", "name_str":["大阪陸運支局なにわ自動車検査登録事務所"], "type_str":["官公庁"], "area_str":["住之江区"], "address_str":["住之江区南港東3-1-14"]}, { "address_p":"34.6109641111111,135.491388722222", "name_str":["住吉税務署"], "type_str":["官公庁"], "area_str":["住吉区"], "address_str":["住吉区住吉2丁目17番37号"]}] }}
まずは表形式の出力。
search() の構文では、最初の引数がコレクション名、それ以降に solr のクエリパラメータを書けます。
![](https://blog.splout.co.jp/wp-content/uploads/2022/07/20220730_solr_entry1-1024x523.png)
search() の代わりに random() にすると、同じクエリでランダムサンプリングになります。
![](https://blog.splout.co.jp/wp-content/uploads/2022/07/20220730_solr_entry2-1024x530.png)
facet() を使って区別の施設数を円グラフで。
![](https://blog.splout.co.jp/wp-content/uploads/2022/07/20220730_solr_entry3-1024x533.png)
同じことを SQL でも書けます。
![](https://blog.splout.co.jp/wp-content/uploads/2022/07/20220730_solr_entry4-1024x482.png)
施設種別毎の施設数を各区で比較した図。
![](https://blog.splout.co.jp/wp-content/uploads/2022/07/20220730_solr_entry5-1024x891.png)
ヒートマップによる区毎の比較。
![](https://blog.splout.co.jp/wp-content/uploads/2022/07/20220730_solr_entry6-1024x982.png)