blogroonga

2013-05-10

ステッカーのデータを公開

昨年の 全文検索エンジンgroongaを囲む夕べ 3 で、groongaステッカーを配布しました。イベントに参加した方はすでに自分のノートパソコンなどに貼っていることでしょう。

そんなgroongaステッカーですが、次の2つの問題がありました。

  • イベントのときなど直接会う機会がないと配布できない
  • 黒い縁に中抜きのデザインだったので黒いものに貼ると文字が見えない

この2つの問題を解決するべく次の2種類のデザインで groongaステッカーのデータを公開 しました!

  • groongaステッカー(黒)
  • groongaステッカー(白)

これでどのように問題を解決できるかを説明します。

まず、「直接会う機会がないと配布できない」問題についてです。これは、ステッカーが物理的なものであることが原因です。ステッカーのデータを公開することにより、誰でも自分の分を印刷できるようになります。「直接会う機会がない」方は、自分でダウンロード・印刷してぜひステッカーを貼ってください!

なお、ステッカーのライセンスは CC-BY 3.0ライセンス ですが、印刷したステッカーを配布する場合は原著作者の表記なしでもOKになっています。ぜひ、仲間の分も一緒に印刷して周りに配布してください!

次に、「黒いものに貼ると文字が見えない」問題です。これは、ステッカーが黒い縁取りと中抜きのデザインだったことが原因です。そのため、今回は白い縁取りと中抜きのデザインも用意しました。黒いものに貼るときはこちらのデータをダウンロード・印刷して貼ってください!

前回のイベントではgroongaステッカーだけ配布していましたが、今回は groongaステッカー だけではなく、 mroongaステッカーrroongaステッカーnroongaステッカー も公開しました。それぞれのプロジェクトを使っている人もぜひダウンロード・印刷して貼ってください!

  • mroongaステッカー(黒)
  • mroongaステッカー(白)
  • rroongaステッカー(黒)
  • rroongaステッカー(白)
  • nroongaステッカー(黒)
  • nroongaステッカー(白)

今後のイベントでもステッカーを配布するので、自分で印刷するのが手間だという人はぜひイベントに参加してステッカーをもらってください!なお、次のイベントは(今年も!)11/29(いい肉の日)の予定です。お楽しみに!

ステッカーのダウンロードはこちらからどうぞ。

groongaプロジェクトが主催していないgroongaイベントもどんどんやってもらいたいと思っています。声をかけてもらえればステッカーを持ってかけつけるので、 @groonga またはgroonga at razil.jpまでご連絡ください。

2013-05-01

リポジトリから1.x系のパッケージを削除しました

先日の肉の日(4/29)に groonga 3.0.3 をリリースしましたが、それに合わせてリポジトリの整理をしました。

1.x系の最後のリリースはgroonga 1.3.0で2012/01/29のことですし、二世代前のシリーズでもあります。

リポジトリの整理の対象は以下の基準をもとに行いました。

  • 1.x系のパッケージ
  • すでにサポート切れのリリース

前者の基準では、groonga 1.x系および、mroonga 1.x系のパッケージをリポジトリから削除しました。後者の基準では、以下のリリースのパッケージをリポジトリから削除しました。

  • Fedora 15
  • Fedora 16
  • Fedora 17
  • Ubuntu 10.10 (Maverick Meerkat 2012年4月サポート終了)
  • Ubuntu 11.04 (Natty Narwhal 2012年10月サポート終了)

どうしても古いバージョンを使いたい場合には、 ソースアーカイブ を提供しているので、そちらをご利用ください。

2013-04-29

今日は肉の日ですね。

groonga 3.0.3リリース

groonga 3.0.3 をリリースしました!

それぞれの環境毎のインストール方法: インストール

はじめに、利用事例の記事を書いてくれる人募集のお知らせです。(再度)

これまでも、groonga.orgにて 利用事例 を紹介してきましたが、それとは別に、 gihyo.jp にてgroonga関連の記事の連載を 隔週連載groonga としてはじめました。

まだgroongaを知らない人にもWebの連載記事を通じて知ってもらいたいというのが動機です。現在第2回まで公開しています。

利用事例がつきたら終了なので、実際に使っているユーザーのみなさんに利用事例を書いてもらえたらいいなぁと思っています!
詳細は groonga普及のための協力のお願い を参照してください。

学習時の重み付けのカスタマイズをサポート

今回のリリースでは、学習時の重みづけのカスタマイズをサポートしました。

groongaでは サジェスト機能 として、補完/補正/提案の3つを提供しています。このサジェスト機能が「それらしい」結果を返すようにするには、適切な学習が必要です。

例えば、4月に「旬の野菜」で夏野菜が候補に出てきては困ります。ちょっと気が早いです。4月であれば、きちんと春野菜が候補にでてきて欲しいですね。

単純に1度学習するだけだと重みが一緒になってしまうので、時期によって重みづけを変更したい場合には、より重要なものを複数回同じデータで学習させる必要がありました。
これでは、学習データの規模が巨大になると非常に手間がかかってしまいます。

そこで、学習時の重み付けのカスタマイズをサポートし、同じデータに対して複数回学習させなくても良いようにしました。個別に重みをカスタマイズしてからその都度データを学習させれば反映されます。

それでは実際の例で試してみましょう。旬の野菜を重みつきで学習する例を以下に示します。

最初にテスト用のデータベースを作成します。

% mkdir -p testdb
% groonga -n testdb/db shutdown

次に、学習用のテーブルをgroonga-suggest-create-datasetコマンドで作成します。

% groonga-suggest-create-dataset testdb/db query

最後に学習データを用意します。途中で configuration テーブルの weight を10にしていますね。これが、今回サポートした重みづけの指定方法です。

load --table event_query --each 'suggest_preparer(_id, type, item, sequence, time, pair_query)'
[
{"sequence": "1", "time": 1312950808.86057, "item": "旬 トマト", "type": "submit"}
{"sequence": "1", "time": 1312950808.86057, "item": "旬 さつまいも", "type": "submit"}
{"sequence": "1", "time": 1312950808.86057, "item": "旬 はくさい", "type": "submit"}
]

load --table configuration
[
{"_key": "query", "weight": 10}
]

load --table event_query --each 'suggest_preparer(_id, type, item, sequence, time, pair_query)'
[
{"sequence": "1", "time": 1312950803.86057, "item": "旬 キャベツ", "type": "submit"},
]

学習させた後で、「提案」機能を使ってみましょう。クエリは以下のようになります。

suggest --table item_query --column kana --types suggest --frequency_threshold 1 --query 旬

旬というキーワードで提案された結果は4件あって、キャベツのスコアが一番高いことがわかります。
出現頻度を指定するための --frequency_threshold をうまく調整すれば、より適切な提案ができるでしょう。

[
  [0,1366613297.59312,0.000118494033813477],
  {
    "suggest":[[4],
    [["_key","ShortText"],["_score","Int32"]],
    ["旬 キャベツ",10],["旬 はくさい",1],["旬 さつまいも",1],["旬 トマト",1]]
  }
]

同じことをそれまで実現するには以下のように複数回学習させないとできなかったので、だいぶ手間が減りました。

load --table event_query --each 'suggest_preparer(_id, type, item, sequence, time, pair_query)'
[
{"sequence": "1", "time": 1312950803.86057, "item": "旬 キャベツ", "type": "submit"},
{"sequence": "1", "time": 1312950803.86057, "item": "旬 キャベツ", "type": "submit"},
{"sequence": "1", "time": 1312950803.86057, "item": "旬 キャベツ", "type": "submit"},
{"sequence": "1", "time": 1312950803.86057, "item": "旬 キャベツ", "type": "submit"},
{"sequence": "1", "time": 1312950803.86057, "item": "旬 キャベツ", "type": "submit"},
{"sequence": "1", "time": 1312950803.86057, "item": "旬 キャベツ", "type": "submit"},
{"sequence": "1", "time": 1312950803.86057, "item": "旬 キャベツ", "type": "submit"},
{"sequence": "1", "time": 1312950803.86057, "item": "旬 キャベツ", "type": "submit"},
{"sequence": "1", "time": 1312950803.86057, "item": "旬 キャベツ", "type": "submit"},
]

groongaのカスタマイズ版をビルドするためのパラメータの追加

今回のリリースでは、groongaのカスタマイズ版をビルドするためのパラメータの追加を行いました。

例えば、groongaが使用するスタックサイズのデフォルト値は1024になっていますが、これを変更してパッケージをビルドしたいときには、specファイルを以下のように修正する必要がありました。

%configure \
  --disable-static \
  --with-package-platform=redhat \
  --with-stack-size=4096 \
  --with-zlib \
%if %{use_lzo}
  --with-lzo \
%endif
  --with-munin-plugins

今回のリリースで、以下のようにrpmbuildコマンドのパラメータとして指定できるようになり、specファイルそのものを編集する必要がなくなりました。

% rpmbuild --rebuild --define 'additional_configure_options --with-stach-size=4096' groonga-3.0.3-0.el6.src.rpm

Fedoraでのリリース方法の変更

今回のリリースからではありませんが、groonga 3.0.2のリリースから独自に提供していたyum repositoryでの提供を止め、Fedora 公式のリポジトリでのパッケージ提供へと一本化するようにしました。

これまで、Fedora 公式のリポジトリからインストールできるgroongaは2.0.9と古い状態だったのですが、最新のリリースに追従するようになっています。
これにより、インストールのときにリポジトリを登録する必要がなくなりました。

ただし、これまでのように独自に提供していた場合と異なり、Fedora 公式のリポジトリへと反映されるまでにはリリースから2〜3週間程度のタイムラグがあります。

Ubuntu 13.04 Raring Ringtailのサポート

今回のリリースでは 2013/04/25 にリリースされたばかりのUbuntu 13.04のサポートを追加しました。

インストール手順は ドキュメント を参照してください。

さいごに

3.0.2からの詳細な変更点は 3.0.3リリース 2013/04/29 を確認してください。

それでは、groongaでガンガン検索してください!