Groonga族2015 ((‘tag:italic:in札幌’))

# : subtitle # サブタイトル : author

横山昌史

: institution

株式会社クリアコード

: content-source

全文検索エンジンGroonga勉強会@札幌

: date

2015-06-14

: allotted-time

35m

: theme

groonga

目的

Groongaを理解した気分になる

本日のメニュー

* Groongaとは
* Groonga族の紹介
* Groongaイベントの紹介

本日のメニュー

* ((*Groongaとは*))
* Groonga族の紹介
* Groongaイベントの紹介

Groongaとは

* 国産の全文検索エンジン
* 参照を止めずに更新できる
* 高速なドリルダウン
* カラムストア機能付き

全文検索エンジン

* 一般的なリレーショナルデータベース(RDB)とは主な用途が異なる
  * RDBは永続的なデータを格納
  * 全文検索エンジンは検索のためのデータを格納

全文検索

* インデックスを使った検索
  * 数がめっちゃ増えても速度を保てる
* 文書のスコア付け
* 単語の正規化(ノーマライズ)
  * 「ガッ」と「ガッ」など

国産

* 日本語サポートが充実
  * groonga-devメーリングリスト
  * プライベートな有償サポートも可
* 毎月肉の日(29日)にリリース

参照ロックフリー

* 更新中も検索できる
* 更新後すぐに検索結果に反映
  * 一般的なデータベースでは当たり前
  * 全文検索エンジンではあまり当たり前ではない
    * 複雑なインデックスのため

ドリルダウン

* 検索結果をグループ分け
* グループごとの件数がわかる
* そこから絞り込み
  * 0件でがっかりしなくて済む

カラムストア

* KVSのような機能
  * KVSとしても使える
* Groongaは自分でストレージを持っている
  * ストレージを持たない全文検索エンジンもある

本日のメニュー

* (('del:Groongaとは'))
* ((*Groonga族の紹介*))
* Groongaイベントの紹介

主なGroonga族

# image
# src = images/groonga-logos.png
# relative_width = 90

((‘tag:groonga:G’))roonga

* C言語のライブラリー
* コマンドラインやHTTP経由でクエリーを投げられるインターフェイスも付属
* (('note:https://vimeo.com/54852941'))

((‘tag:mroonga:M’))roonga

* MySQLのストレージエンジン
  * MariaDBやPercona Serverも対応
* SQLで全文検索、位置情報検索
* (('note:http://www.slideshare.net/Kentoku/mroonga-20131129'))
* (('note:http://slide.rabbit-shocker.org/authors/kou/osc-2014-tokyo-fall/'))

((‘tag:nroonga:N’))roonga

* Node.jsバインディング
* クエリーのAPIを提供
* Buzztter
  * (('note:https://speakerdeck.com/dara/nroonga-groonga-api'))

((‘tag:rroonga:R’))roonga

* Rubyバインディング
* DB API層のライブラリー
  * クエリーよりも細かい操作が可能
  * サーバー不要
  * SQLiteのような感じで使える

((‘tag:droonga:D’))roonga

* Distributedの"D"
* 分散型全文検索エンジン
* (('note:http://droonga.org/ja/'))
* Sharetary
  * (('note:https://github.com/clear-code/sharetary'))

((‘tag:pgroonga:PG’))roonga

# blockquote
# title = "https://github.com/pgroonga/pgroonga"
PGroongaはPostgreSQLからインデックスとして Groongaを使うための拡張機能です。

((‘tag:pgroonga:PG’))roonga

# blockquote
# title = "https://github.com/pgroonga/pgroonga"
PostgreSQLは標準では日本語で全文検索できませんが、PGroongaを使うと日本 語で高速に全文検索できるようになります。

((‘tag:pgroonga:PG’))roonga

* PostgreSQLで日本語全文検索
  * LIKEとpg_bigmとPGroongaの比較
  * (('note:http://slide.rabbit-shocker.org/authors/kou/postgresql-unconference-tokyo-2015/'))

まだまだいるよ

* 関連プロジェクト
  * (('note:http://groonga.org/ja/related-projects.html'))
* 利用者のみなさん
  * (('note:http://groonga.org/ja/users/'))

本日のメニュー

* (('del:Groongaとは'))
* (('del:Groonga族の紹介'))
* ((*Groongaイベントの紹介*))

Groongaイベント

* Groongaドキュメント読書会
* Groongaソースコード読書会
* 全文検索エンジンGroongaを囲む夕べ
* 草の根Groongaイベント

ドキュメント読書会

* Web上のドキュメント輪読会
  * ぐるなびさんで開催
  * 読んだ人が自分の言葉でまとめる
  * 読書会の進め方
    * (('note:http://slide.rabbit-shocker.org/authors/kou/groonga-document-read-5/'))

ソースコード読書会

* ソースコードをデバッガで追う会(こわくないよ)(('tag:xx-small:(たぶん)'))
  * ビジネスバンクグループさんで開催
  * Groongaソースコード読書会2
    * (('note:https://groonga.doorkeeper.jp/events/26764'))

Groongaを囲む夕べ

* 年に1度、いい肉の日(11月29日)に開催
* 開発チームから今年のアップデート内容と今後の展望を聞ける
* ユーザー間で情報交換できる

草の根Groonga

* 話題を特化
* ユーザーがやりたいテーマで自由に開催
* 開発者もできるだけ協力
* (('note:http://osdn.jp/projects/groonga/lists/archive/dev/2013-December/001937.html'))

まとめ

* ((*(('del:Groongaとは'))*))
* ((*(('del:Groonga族の紹介'))*))
* ((*(('del:Groongaイベントの紹介'))*))

まとめ

* 検索対象が増えて遅くなったと感じたら全文検索エンジンの検討をおすすめ
* Groongaはいろいろな場面でいろいろな使い方ができる
* コミュニティもあるよ

参考