ヽ(´・肉・`)ノログ

How do we fighting without fighting?

groonga 勉強会

インストール方法

groonga.org に書いてある

何故作ったか?

groonga とは何か

groonga 特徴

転置索引

トレードオフ インデックス <-> サーチ

最初に準備するのが大変か,検索する時大変か

転置検索は最初に準備するのが大変だけど,検索する時簡単

即時索引

転置索引で準備するのが大変だけど,すぐに検索できるように開発者の森さんががんばってる

カラムストア

レコードとカラム 普通はレコード単位で使うけど,カラム単位で使いやすいようにしてある

既存の新しめのUIだと

が大体必要で,カラムストアはこれができる

groonga の使い方

  1. Cのライブラリ
  2. コマンドライン
    • groonga
  3. HTTPサーバー(httpd)
    • groonga –protocol http
      • telnet localhost 10041 (41は作った時の森さんの年齢)
      • アクセスすると json で返る
  4. gqtp (groonga query transfer protocol)
  5. MySQL + groonga
  6. PGSQL + groonga
  7. Ruby + groonga

楽 <-> マニアック 5,6 < (7) < 4 <<< 2 <<<<<<<<<<<<<<<< 1

groonga がどうやってデータを持っているのか?

テーブルに収めてから出すまで

テーブル

groonga のテーブルはレコードIDを管理するもの

  1. 配列
    • ID 「だけ」を管理する
  2. ハッシュテーブル
    • key と value じゃなくて, key と id
  3. パトリシアトライ
    • Trie (reTRIEval)
    • key と id
    • 木構造

大きく分けると,IDだけの「配列」と,KEYとIDの「ハッシュテーブル」と「パトリシアトライ」の2種類にわかれる

カラム

レコード ID に対応する値を入れておく場所

  1. スカラー
    • 1つの値
  2. ベクター
    • スカラーが複数
  3. インデックス
    • 転置索引
    • 先にトークナイザーの話をするよ
    • ここで復活!(文章でうまく書けないわ)

トークナイザー

:トークナイザー:トークナイズするオブジェクト :トークナイズ:文章とトークンに切り出す :トークン:単語

「私はしまだです」->「私」「は」「しまだ」「です」

質問コーナー

groonga はこれからどうなっていきますか/どういう位置付けを狙ってますか

トークナイザーの工夫はどうやってますか

MySQL の InnoDB に全文検索エンジンが付いたらしいけど MySQL + groonga とどう違うの?

検索と更新のスループット

groonga はどんな所で使われてるの?

文章数どのくらいつっこめるの

このエントリーをはてなブックマークに追加