Groongaドキュメント読書会2の話

Groongaドキュメント読書会2 - Groonga | Doorkeeper に参加した。Groongaのオンラインドキュメントを順次みんなで読んでいくというもの。以下は参加したときに話題にあがったこととか、自分が知っている範囲ををつらつらと書いてみた。

自己紹介のターン

最初に参加者が自己紹介をした。新顔の人はこんな理由があって参加しました!という話をしていて、前回から継続している人は前回からあった出来事(別にGroongaに関係なく)について話をしたりした。これをやることでなごやかな雰囲気になったので、大分話しやすくなったんじゃなかろうか。参加者が6人と小規模だったのもあるかも。あ、お酒はほどほどに。あと失せ物には注意。既婚者はいろいろ大変。

実際にドキュメントを読む

今回は、2. インストール — Groonga v4.0.2ドキュメント から4.1. 基本的な操作 — Groonga v4.0.2ドキュメント まで。

やっているのは、ひとりずつドキュメントを区切って順番に読んで、理解したことを話すということ。 この形式だと理解があやふやだったりすると、(うまく説明できないので)ひっかかるところがわかりやすい。そういった箇所については、開発者が適宜補足したり、参加者がこれってどういうこと?と質問したりというので解決するすすめかただった。

2.2.2 Homebrew

Homebrewによるインストール手順のドキュメント。TokenMecabを使うには--with-mecabオプションの指定を忘れずに。--with-mecabが指定してあるとIPA辞書も一緒に入る。こうなっているのはみんながみんなMeCabのトークナイザーを必要としているわけではないから。ドキュメントでは触れていないけど、--enable-benchmarkという開発者向けのオプションもある。そういえば、以前brew editして--enable-debugしようとしたときにconfigureがコケる現象に遭遇したような気が。どうだったかな。

2.2.3 ソースからビルド

コア数の取得方法が他とちょっと違うのかという発見。

% make -j$(/usr/sbin/sysctl -n hw.ncpu)

2.3 Debian GNU/Linux

サーバー用途は3つパッケージがあるよ!という話。簡易HTTPサーバーでPOSTできなかったけど、最近できるようにする修正が入ったことなど。簡易HTTPサーバーは変なリクエストがきちゃうと困るので、nginxベースのHTTPサーバーがおすすめ。

あとMuninパッケージを入れると、CPU使用率とかスループットを見れるようになるよ、という話。

公式ドキュメントにはないけど、QiitaにMuninプラグインについて書いたのがある。

このへんは公式にマージしておかないと。

wheezyやjessieやsidはまぁ一緒なので以下略。

2.4.1 PPA

最近UbuntuではPPAを利用するようになった。(Debianはまだpackages.groonga.orgからインストールするやりかた)

2.5. CentOS — Groonga v4.0.2ドキュメント

  • × PRMパッケージ -> ○ RPMパッケージ 修正済み
  • groonga-tokenizer-mecabを入れると辞書も依存関係で勝手にインストールされるのでわざわざ自分でインストールしなくてもよいはず。 修正済み

2.6. Fedora — Groonga v4.0.2ドキュメント

  • × PRMパッケージ -> ○ RPMパッケージ 修正済み
  • Fedoraのノートの内容が古い。これは後で直す。
  • 辞書の依存関係の話も現状にあっていない

2.8.1.2 ライブラリ

  • KyTea キューティーと読む。なぜかこれまで自分はケーワイティーと読んでいた。
  • サジェスト用にlibeventとかが挙げられているのは、学習するためのサーバーでは例えば1文字入力されるたびにリクエストを受けるので、数多くのリクエストをさばかないといけない。というわけでlibeventとかが使われている。
  • zlibやLZOはカラムの圧縮用とあるけど、これを有効にするとメモリリークが発生してしまう問題があって現状使えない。
  • 2.8.2.1.2 --localestatedir localstatedirのtypo 修正済み

4.1.10 全文検索用の語彙表の作成

table_createでKEY_NORMALIZEフラグはもう非推奨。今は--normalizerをかわりに使う。というのもノーマライザーをプラグインとして追加できるようになったため。

4.1.14 表示範囲指定

selectコマンドはoffset引数とlimit引数を使って表示範囲を限定できる。 何も指定しないと10件のみ表示する。

さいごに

今回はインストールの部分が多くて、まあリリースは違ってもほとんど同じという箇所がかなり。とはいえ皆で読みなおしてみると、うっかりtypoしている箇所を見つけたり、日本語のてにをはがおかしかったり、内容が古くなっている箇所を見つけることができた。

丁度タイムリーにドキュメントに対する手厳しい指摘もあったことだし、この取り組みは決して悪くはないはず。

次回再開するときは、4.2. リモートアクセス — Groonga v4.0.2ドキュメント から。