BloGroonga

2012-10-29

今日は肉の日ですね。

リリースアナウンスの詳細の前にお知らせが1つあります。

すでに groonga勉強会「全文検索エンジンgroongaを囲む夕べ 3」開催のお知らせ というエントリを書いていますが、来月groonga勉強会を開催します。

開催告知から更新した内容(発表者が追加されたり、発表者の応募締切が延びました!)もありますので、ここで再度告知します。

全文検索エンジンgroongaを囲む夕べ 3開催のお知らせ

今年も groonga勉強会「全文検索エンジンgroongaを囲む夕べ 3」を開催 します。

  • 会場: 株式会社VOYAGE GROUP 8Fセミナールーム Google Mapsで表示
  • 日時: 2012/11/29 (木) 19:00-21:00 (18:30開場、懇親会は21:00開始)
  • 申し込み方法: ATNDのイベントページ から申し込んでください。先着150名で、まだ人数に余裕があります。
  • 懇親会: 参加・不参加について、ATNDでの参加登録の際のコメントか ATNDのイベントページ 下部のコメント欄にてご連絡ください

今回のgroonga勉強会では、ユーザさんがgroongaをどんな風に使っているか発表してもらうことを重視しています。

groongaはユーザーさんに助けられながら開発を続けています。これまで、groongaを使ってくれるユーザーさんが増えるにつれ、フィードバックなどの協力もより多く得られるようになりました。

そこで、もっとユーザーさんの意見を参考にしてgroongaを改善するため、ユーザーさんがどのようにgroongaを使っているかを発表していただいて、ユーザーさんや開発者がみんなで話す会にしたいと思っています。

groongaについてユーザーさんが改善してほしい点や便利だなーと思う点を、開発者含めgroongaを使っている人たちみんなで話をして、groongaがよりいい方向に進むための足がかりにしたいと考えています。

また、ユーザーさんや、groongaに興味があるけどまだ使ったことのない人がお互いにgroongaについて話すことで、どのようにgroongaを使うのが自分にとって適切かを見つけられると考えています。

すでに4名の方から以下の内容で発表者として応募いただいています。

  • こしばさん: web広告系システムでgroongaをどう使っているかの発表をしてくださいます!
  • 和田さん: タイトル「nanapiにおけるmroonga活用事例」

    nanapiというサイトでgroongaやmroongaをどう使っているかの発表をしてくださいます!

  • てみたさん:

    ニコ番というサービスでrroongaをどう使っているかの発表をしてくださいます!

  • ongaeshiさん:

    Milkodeというソフトウェアでrroongaをどう使っているかの発表をしてくださいます!

発表していただける方をまだまだ募集しています。応募の締切は11/04(日)23:59となっています。発表者になると、懇親会参加費用が無料になる特典があります。

また、受付を手伝ってくださる方も募集しています。(お手伝いいただける方ももちろん懇親会参加費用が無料です。)

勉強会、懇親会等の詳細は以下の ATNDのイベントページ を随時更新していますので、そちらをご確認ください。

Twitterのgroongaアカウント でも随時ツイートしています。

勉強会のお知らせは以上です。

groonga 2.0.8リリース

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

今回のリリースの主なトピックは2つあります。

  • クエリ展開のプラグインによるカスタマイズのサポート
  • Ubuntu 12.10 (Quantal Quetzal)のサポート

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

クエリ展開のプラグインによるカスタマイズのサポート

今回のリリースでは、実験的にクエリ展開をプラグインによりカスタマイズすることができるようになりました。

例えば同義語がいくつかあったときに、とある単語で検索したら、その同義語でも一緒に検索してくれるとユーザーにとってより望ましい結果が得られることがあります。同義語に限らず、関連したキーワードでも似たようなことが言えます。

具体的にはgroonga,rroonga,mroongaは互いに関連したキーワードですが、これを実現するには (groonga OR rroonga OR mroonga) というクエリを書く必要があります。

単純なクエリであれば問題になりませんが、条件が複雑になってくるとメンテナンスしにくくなってしまいます。

groongaではそういった検索を簡単に行えるようにクエリ展開を既にサポートしています。

具体例で説明します。以下は説明のためのスキーマ定義とサンプルデータです。

  table_create Memos TABLE_NO_KEY
  column_create Memos content COLUMN_SCALAR ShortText
  table_create Lexicon TABLE_PAT_KEY ShortText --default_tokenizer TokenBigram
  column_create Lexicon diary_content COLUMN_INDEX|WITH_POSITION Memos content
  table_create Synonyms TABLE_PAT_KEY ShortText
  column_create Synonyms words COLUMN_SCALAR ShortText

  load --table Memos
  [
  ["content"],
  ["Start groonga!"],
  ["Start mroonga!"],
  ["Start rroonga!"],
  ["Start Ruby!"],
  ["Learning Ruby and groonga..."],
  ]

  load --table Synonyms
  [
  ["_key", "words"],
  ["groonga", "(groonga OR rroonga OR mroonga)"]
  ]

Synonymsテーブルにあらかじめ登録しておいたgroongaというキーワードを用いて関連キーワードをまとめてクエリ展開するには以下のように書きます。 Memosテーブルのcontentカラムに登録してあるテキストに対してgroongaというキーワードで検索しようとしたときにrroongaやmroongaでもまとめて検索するクエリ展開を行う例です。

  select --table Memos --query_expansion Synonyms.words --match_columns content --query groonga

  [[0,1350898793.34538,0.00174403190612793],
   [
    [[4],
     [
      ["_id","UInt32"],["content","ShortText"]],
      [1,"Start groonga!"],
      [5,"Learning Ruby and groonga..."],
      [3,"Start rroonga!"],
      [2,"Start mroonga!"]
    ]
   ]
  ]

groongaだけでなくrroongaやmroongaも検索結果として取得できることがわかります。

今回のプラグインによるカスタマイズのサポートでは、同義語のためにテーブルを作らずにタブ区切りのテキストファイル(synonyms.tsv)を指定することができるようになりました。

  key[TAB]synonym1[TAB]synonym2[TAB]...

例えば、groongaをクエリで指定したら、rroongaやmroongaもまとめて検索できるようにするには以下のようなテキストファイルを記述します。

  groonga[TAB]groonga[TAB]rroonga[TAB]mroonga

実際に QueryExpanderTSV を使うにはクエリを以下のように変更します。

  select --table Memos --query_expansion QueryExpanderTSV --match_columns content --query groonga

すると --query groonga とすると実際に実行されるクエリとしては以下と同等になります。

  --query "((groonga) OR (rroonga) OR (mroonga))" 

デフォルトでは /etc/groonga/synonyms.tsv に雛形となるテキストファイルをインストールします。 任意の場所に変更したい場合には、 GRN_QUERY_EXPANDER_TSV_SYNONYMS_FILE 環境変数で別のファイルを指定することもできます。

Ubuntu 12.10 (Quantal Quetzal)のサポート

Ubuntu 12.10 Quantal Quetzalが10月18日にリリースされました。

今回のリリースでは早速Ubuntu 12.10向けのパッケージの提供を開始しました。

さいごに

2.0.7からの詳細な変更点は 2.0.8リリース 2012/10/29 を確認してください。

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