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 のクエリパラメータを書けます。
search() の代わりに random() にすると、同じクエリでランダムサンプリングになります。
facet() を使って区別の施設数を円グラフで。
同じことを SQL でも書けます。
施設種別毎の施設数を各区で比較した図。
ヒートマップによる区毎の比較。