Groongaドキュメント読書会#4参加レポート
2014/8/25に開催されたGroongaドキュメント読書会#4の参加レポートです。 今回初めて参加させていただきました。 読書会で学んだことのうち、ドキュメントに記載されていないことを中心にまとめています。 4.4.1. JavaScriptに似た文法での絞込・全文検索 ドキュメント queryとfilterは書き方の違いだけなのか? 書き方の違いだけで、処理的には同じ。 filterの方が表現力が高い。 4.4.2. scorer を利用したソート ドキュメント –filter “1” 全てのレコードにマッチさせる、という意味。 –filterすると結果として仮想テーブル的なものができる。 仮想テーブル的なものに_scoreがついてるイメージ。 –scorer “_score = rand()” ランダム値を_scoreに代入。 –scorerを使うと元々あるカラム(_score以外のカラム)の値を変えることもできてしまうが、基本的には_scoreの値を調整することを意図した機能。 selectの結果で返されるデータの中で、最初の値が三つ入っている配列は何? 第一要素: 結果ステータス (0 = 正常終了) 第二要素: クエリの実行を開始した時間 第三要素: 開始したのにかかった時間 4.4.3. 位置情報を用いた絞込・ソート ドキュメント 緯度、経度の区切り文字にはカンマも使える。 距離計算や円の中にあるかどうか、矩形の中にあるかどうかなどが関数で計算できる。 球面を考慮して計算するモードや平面と見なして計算するモードがある。 Groongaは内部表現はできるだけ整数にしている(計算誤差を減らすため)。 度数表記は60進数なので60をかけてミリ秒表記に変換できる。 ミリ秒表記のデータをもっているならそのまま使った方がいい。 4.5. ドリルダウン ドキュメント ドリルダウンとはRDBのGROUP BYのような処理ができる機能。 サンプルコードで指定している–limit 0とは? 出力件数を0にしている。 drilldownは普通のセレクト結果+drilldown結果を返す。 この例ではselectの出力は余計なので–limit 0で抑制して...