読者です 読者をやめる 読者になる 読者になる

てっくめも

主に技術的なことをつらつらと

Groonga読書会2 参加レポート

Groonga

2014-06-03 に開催されたGroonga読書会2の参加レポートです。

Groongaの公式ドキュメントを輪読形式で進めていき、Groongaに対する理解を深めるのが目的です。

内容

今回はドキュメントの「2. インストール」〜 「4.1.15. 検索結果の並べ替え」の範囲でした。

2. インストール

各OSへのインストール方法が記載されています。 それぞれのOSでインストール方法が微妙に異なったり、ソースからビルドする際のパラメータの紹介もあったりと、普段気に留めない内容を見ることができました。

当日出ていた質問や解説があった部分は以下になります。

2.3. Debian GNU/Linux
  • 簡易HTTPサーバは変なリクエストが来たら応答しなくなる
    • nginxはその辺をカバーしてくれる
      • nginxのモジュール
  • Munin では レコード数とかディスク容量とか8種類みれる
  • ノーマライザーについて
    • 大文字小文字などの正規化処理を行う
    • モジュール化されているので追加などができる
    • インストールして指定することで使用可能
2.5. CentOS
  • Juman辞書 はchasenの元になっていて、chasenmecabの元になったもの らしい
    開発時期がJuman→ChasenMeCab(右にいくほど新しい)となっている。
  • Cent6 では MeCab を入れると ipadic も入ったらしい
2.8. その他
  • yum 等でインストールする場合は、各ライブラリ全部入り
  • libevent ( サジェスト 用)
    • Groongaとは別にHTTPサーバを立ててる(別ポートで通信している)
  • zlib (カラム値の圧縮用)、LZO (カラム値の圧縮用)
  • マッチ演算とは
    • 検索してHITしない場合に、救済するためのもの
      • 検索条件を緩めて再検索を行う

3. コミュニティ

特筆することはありませんが、「英語圏向けMLもあったんだー」と1人プチ発見をしていました。

4. チュートリアル

Groonga DBの作成方法やテーブル・インデックスの作成、検索の初歩的な部分まで進みました。

当日出ていた質問や解説があった部分は以下になります。

4.1.10. 全文検索用の語彙表の作成
  • KEY_NORMALIZEフラグ は使わない方がいい
    • 代わりに NORMALIZERというパラメータを指定する必要がある
  • 普段は語彙表を意識して直接触らなくて大丈夫。
    • このINDEXならスコア高め、このINDEXならスコア低めとかを変えられる。
    • 通常は、カラム指定で検索すればGroongaが適宜INDEXを見てくれる。
4.1.6. テーブルの表示

検索結果で返却される情報の中で、データとは別に情報が得られます。それぞれ以下のようになっています。

#   [
#     0, <- ステータスコード
#     1337566253.89858, <- クエリを開始した時間
#     0.000355720520019531 <- クエリの実行にかかった時間
#   ],

振り返り

  • 全体的に、理解は深まったようで、会としては成功であったようです。
  • インターネット環境についても、各自環境が用意出来ていたので、問題ありませんでした。
  • 課題としては、進行が早く、メモをする時間や実際に動作させる時間があまり取れませんでした。

次回以降は、

  • メモをする時間を取る(声をかけて進行を止める事をやりやすくする)
  • 各自が実行する時間を取る or 代表者がスクリーンに映しながら実行してみる

あたりで改善していきましょうとの事でした。

所感

前回の読書会1には、終わりの10分程度しか参加できなかったため、実質今回が初参加でした。

読書会ということで、賑やかなイベントではありませんが、輪読の途中で思わぬ裏話的な事が聞けたりととても為になるイベントでした。

内容はGroongaのインストールからチュートリアルのさわりぐらいまででしたが、普段見る事の無い様々なOSへのインストール方法や、既にプログラムで行ってしまっているコマンド発行を改めて見直す良い機会となりました。

今回はドキュメントを読むのみで終わってしまいましたが、チュートリアルなどは実際に動かして結果を目で見ながら進められると、なお理解が深まるのかなと思いました。

次回がありましたら、また参加させていただこうと思います。

最後に、主催者であるクリアコードの皆さん、会場提供者であるぐるなびの皆さん、有意義な時間をありがとうございました。