Rabbit Slide Show

Groonga族2014

2014-11-29

Description

Groonga、Mroonga、Rroonga、Droongaなど、Groonga関連プロジェクトの概要と2014年現在の最新情報を紹介します。

Text

Page: 1

Groonga族
2014
須藤功平
クリアコード
全文検索エンジンGroongaを囲む夕べ5
2014/11/29
Groonga族2014
Powered by Rabbit 2.1.4

Page: 2

この時間の目的(1)
Groongaの
特徴を紹介
(まだGroongaを使っていない人向け)
Groonga族2014
Powered by Rabbit 2.1.4

Page: 3

この時間の目的(2)
2014年の
Groonga関連の
最新情報を
ざっくり紹介
Groonga族2014
Powered by Rabbit 2.1.4

Page: 4

Groonga族と私
開発・リリース・サポート
Groonga、Mroonga、Rroonga、
Droonga、他各種ツール
イベント運営
Groongaを囲む夕べ、
ドキュメント読書会の解説者枠
Groonga族2014
Powered by Rabbit 2.1.4

Page: 5

内容
Groonga族の概要
Groonga族の最新情報
Groonga関連情報の見つけ方
Groonga族2014
Powered by Rabbit 2.1.4

Page: 6

Groonga族の概要
Groongaの特徴
Groonga族とは
Groonga族2014
Powered by Rabbit 2.1.4

Page: 7

Groongaの特徴(1)
即時更新
Groonga族2014
Powered by Rabbit 2.1.4

Page: 8

即時更新
データ更新時:索引も更新
1つの索引を随時更新
×サブ索引を作成→マージ
→すぐに検索できる
新鮮な情報をすぐに検索可能に
大事にしていること
Groonga族2014
Powered by Rabbit 2.1.4

Page: 9

Groongaの特徴(2)
安定した
高い検索性能
Groonga族2014
Powered by Rabbit 2.1.4

Page: 10

安定した高い検索性能
索引更新中も検索可能
更新処理が検索処理を阻害しない
更新中も参照可能にすることで実現
定期的な重い処理がない
×フルGCによるstop the world
×索引のマージ
Groonga族2014
Powered by Rabbit 2.1.4

Page: 11

Groongaの特徴(3)
日本語特化の
検索機能
Groonga族2014
Powered by Rabbit 2.1.4

Page: 12

日本語特化の検索機能(1)
ローマ字前方一致検索
「to」→「トウキョウ」
「tyo」→「チョウフ」
「cho」→「チョウフ」
(ヘボン式もいける)
「と」→「トウキョウ」
(ひらがなもいける)
Groonga族2014
Powered by Rabbit 2.1.4

Page: 13

日本語特化の検索機能(2)
ハイブリッドBigram
(↓は正確じゃないけどだいたいあっている説明)
日本語はBigram
英語は空白区切り
"日本" "本語" "語は" "Bigram"
日英混じりでもBigramを使える
英語Bigramの検索性能の悪さを解消
(英単語のステミングやストップワードもできる)
Groonga族2014
Powered by Rabbit 2.1.4

Page: 14

Groongaの特徴(4)
他システムと
連携
Groonga族2014
Powered by Rabbit 2.1.4

Page: 15

他システムと連携
連携
Cライブラリーとして利用可
既存システムに全文検索機能を追加
メリット
Groonga:全文検索以外はお任せ
既存システム:全文検索機能追加
使う側:追加で覚えることが少ない
Groonga族2014
Powered by Rabbit 2.1.4

Page: 16

連携例
MySQL(Mroonga(むるんが))
Groonga
通信・レプリケーションなどお任せ
既存システム(MySQL)
日本語全文検索対応
使う側
SQLを使って日本語全文検索できる
Groonga族2014
Powered by Rabbit 2.1.4

Page: 17

Groongaの特徴(5)
定期リリース
Groonga族2014
Powered by Rabbit 2.1.4

Page: 18

定期リリース
毎月肉の日にリリース
(肉の日 == 29日)
メリット
問題を報告してから修正版が
手に入るまでの時間が短い
最新ディストリビューションへの
対応が速い
Groonga族2014
Powered by Rabbit 2.1.4

Page: 19

リリース!
Groonga 4.0.8
リリース!
Groonga族2014
Powered by Rabbit 2.1.4

Page: 20

リリース!!
Mroonga 4.08
リリース!
Groonga族2014
Powered by Rabbit 2.1.4

Page: 21

リリース!!!
Droonga 1.0.8
リリース!
Groonga族2014
Powered by Rabbit 2.1.4

Page: 22

Groongaの特徴
即時更新
安定した高い検索性能
日本語特化の検索機能
他システムと連携
定期リリース
Groonga族2014
Powered by Rabbit 2.1.4

Page: 23

Groonga族の概要
Groongaの特徴
Groonga族とは
Groonga族2014
Powered by Rabbit 2.1.4

Page: 24

Groonga族
Groongaと
関連プロダクトの総称
関連プロダクト
Xroonga(○るんが)
という名前が多い
Groonga族2014
Powered by Rabbit 2.1.4

Page: 25

関連プロダクトの分類
詳細:http://groonga.org/ja/related-projects.html
データベース
言語バインディング
クライアントライブラリー
ユーティリティー
Groonga族2014
Powered by Rabbit 2.1.4

Page: 26

データベース
既存データベースに
全文検索機能を追加
例:MySQL→Mroonga(むるんが)
既存データベースの
インターフェイスで使える
例:SQL
Groonga族2014
Powered by Rabbit 2.1.4

Page: 27

言語バインディング
好きな言語で全文検索機能付き
アプリケーションを書ける
例:Ruby→Rroonga(るるんが)
アプリケーションがDBを開く
SQLite3やDBMを使う感じ
1マシンで扱える量向き
Groonga族2014
Powered by Rabbit 2.1.4

Page: 28

クライアントライブラリー
Groongaサーバーへの
アクセスを支援
例:Go→goroo(ごろう)
クライアント・サーバーモデル
MySQLやMongoDBを使う感じ
アプリとDBでマシンを分ける構成用
Groonga族2014
Powered by Rabbit 2.1.4

Page: 29

ユーティリティー
便利ツールがいろいろある
Madhand:Groongaレプリケーション
https://github.com/yappo/ruby-madhand
groonga-query-log:
スロークエリー調査とか
zshの補完関数
grnline:
groongaコマンドを便利にする
Groonga族2014
Powered by Rabbit 2.1.4

Page: 30

関連プロダクトの分類
詳細:http://groonga.org/ja/related-projects.html
データベース
言語バインディング
クライアントライブラリー
ユーティリティー
Groonga族2014
Powered by Rabbit 2.1.4

Page: 31

Groonga族の最新情報
Groonga族の概要
Groonga族の最新情報
Groonga関連情報の見つけ方
Groonga族2014
Powered by Rabbit 2.1.4

Page: 32

2013/12
Groonga Advent Calendar 2013
http://qiita.com/advent-calendar/2013/groonga
今年もやるので参加してね!
http://qiita.com/advent-calendar/2014/groonga
geo_in_rectangleが北半球
だけでなく全世界をサポート
去年のこのイベントでバグレポート
Groonga族2014
Powered by Rabbit 2.1.4

Page: 33

2013/12
between()関数を追加
1 <= X && X <= 10
のような範囲クエリーを高速実行
SQLでいう"X BETWEEN 1 AND 10"
Groonga族2014
Powered by Rabbit 2.1.4

Page: 34

2014/1
DBサイズ増加を抑制
レコードの更新をくりかえすと
DBサイズが増えることがある
増加しにくくなった
Groonga Meetup開催
1/29
ハンズオン
Groonga族2014
Powered by Rabbit 2.1.4

Page: 35

2014/2
2/9に4.0.0リリース!
年に1度の肉の日
Groonga族2014
Powered by Rabbit 2.1.4

Page: 36

2014/3
レコード毎の重み付けに対応
スコアー調整に便利
例:Groongaタグがついていたら
スコアーを10倍
参照
selectのadjusterオプション
重み付きベクターカラム
Groonga族2014
Powered by Rabbit 2.1.4

Page: 37

2014/3
全文検索エンジンGroonga
勉強会@札幌開催
3/29
Groonga族2014
Powered by Rabbit 2.1.4

Page: 38

2014/4
Groonga Meetup開催
4/29
ハンズオン
Groonga族2014
Powered by Rabbit 2.1.4

Page: 39

2014/5
Ubuntuパッケージ配布URL変更
LaunchpadのPPAを利用
HerokuでGroongaを利用可能に
Rroongaも使える
http://www.clear-code.com/blog/2014/5/28.html
Groonga族2014
Powered by Rabbit 2.1.4

Page: 40

2014/5
Groongaドキュメント読書会1
5/15
Groongaの理解を深める会
集まってドキュメントを読む
参加者が気になったところは
随時Groonga開発者(私)が図解
Groonga族2014
Powered by Rabbit 2.1.4

Page: 41

2014/6
HTTPサーバーがPOST対応
GQTPサーバーのデフォルト
ポート番号を変更
10041→10043
プラグイン用APIを強化
Groonga族2014
Powered by Rabbit 2.1.4

Page: 42

2014/6
Try Groonga公開
Webブラウザー上で
Groongaを試せる
インストールいらず
Heroku上で動作
http://try-groonga.herokuapp.com/
Groonga族2014
Powered by Rabbit 2.1.4

Page: 43

2014/6
Groongaドキュメント読書会2
6/3
Groongaの理解を深める会
集まってドキュメントを読む
参加者が気になったところは
随時Groonga開発者(私)が図解
Groonga族2014
Powered by Rabbit 2.1.4

Page: 44

2014/7
Groongaドキュメント読書会3
7/23
Groongaの理解を深める会
集まってドキュメントを読む
参加者が気になったところは
随時Groonga開発者(私)が図解
Groonga族2014
Powered by Rabbit 2.1.4

Page: 45

2014/8
キーワードハイライト関数追加
highlight_fullとhighlight_html
近傍検索記法を追加
「*N"A Z"」→Aの近くにZがある
「近く」の閾値はパラメーター
Groonga族2014
Powered by Rabbit 2.1.4

Page: 46

2014/8
Groongaドキュメント読書会3
8/25
Groongaの理解を深める会
集まってドキュメントを読む
参加者が気になったところは
随時Groonga開発者(私)が図解
Groonga族2014
Powered by Rabbit 2.1.4

Page: 47

2014/9
mruby実装のクエリーオプティ
マイザーが動くようになった
RubyKaigi 2014があった
ConoHa presents -
Groonga "How-To" Talks開催
http://groonga.org/ja/blog/2014/09/03/conoha-
presents-groonga-how-to-talks.html
Groonga族2014
Powered by Rabbit 2.1.4

Page: 48

2014/9
packages.groonga.orgで
「ConoHa支援プログラム」を
利用開始
https://www.conoha.jp/community
ソース・パッケージ配布サイト
Groonga族2014
Powered by Rabbit 2.1.4

Page: 49

2014/10
Windowsでもmruby組込サポート
トークンフィルター機能追加
プラグイン対応
TokenFilterStopWord:
ストップワード
TokenFilterStem:
ステミング
Groonga族2014
Powered by Rabbit 2.1.4

Page: 50

2014/10
カラム圧縮サポート
zlib/LZ4
in_values関数を追加
SQLでいう"カラム IN(A, B, ...)"
だいぶ速くなる
Groonga族2014
Powered by Rabbit 2.1.4

Page: 51

2014/10
Groongaドキュメント読書会5
10/27
Groongaの理解を深める会
集まってドキュメントを読む
参加者が気になったところは
随時Groonga開発者(私)が図解
Groonga族2014
Powered by Rabbit 2.1.4

Page: 52

2014/11
n個のキーを使った
ドリルダウンをサポート
例:ユーザーとタグでドリルダウン
range_filterコマンドを追加
ヒット件数は返せない代わりに高速
SQLでいうORDER BY LIMITで
速くなるパターン用のコマンド
Groonga族2014
Powered by Rabbit 2.1.4

Page: 53

2014/11
管理画面をリニューアル
今のところ検索画面だけ
使いやすさ重視
https://github.com/groonga/groonga-admin/
Groonga族2014
Powered by Rabbit 2.1.4

Page: 54

Rroonga
リリースチームを結成
最新Groongaをサポート
メモリー使用量削減
Groonga族2014
Powered by Rabbit 2.1.4

Page: 55

ユーティリティー
fluent-plugin-groonga
ログをGroongaに投入可能
スキーマは自動定義
→Groongaサーバーを立てたら
すぐに使える
Fluentdで集めたデータをGroongaに格納する方法
http://qiita.com/groonga/
items/5c674be9daf25054c14c
Groonga族2014
Powered by Rabbit 2.1.4

Page: 56

Groonga関連情報の見つけ方
Groonga族の概要
Groonga族の最新情報
Groonga関連情報の見つけ方
Groonga族2014
Powered by Rabbit 2.1.4

Page: 57

オンライン(1)
http://groonga.org/
メーリングリスト
groonga-dev
Twitter
@groongaをフォロー
拾ってもらう
Groonga族2014
Powered by Rabbit 2.1.4

Page: 58

オンライン(2)
Qiita
「groonga」タグをフォロー
Groonga Advent Calendar
http://qiita.com/advent-calendar/2013/groonga
http://qiita.com/advent-calendar/2014/groonga
Groonga族2014
Powered by Rabbit 2.1.4

Page: 59

オフライン
Groongaを囲む夕べ
11/29(いい肉の日)
ドキュメント読書会
1,2ヶ月に1回開催
次回は12/11(木)
Groonga族2014
Powered by Rabbit 2.1.4

Other slides

Apache Arrow Apache Arrow
2018-12-08
Apache Arrow Apache Arrow
2018-11-17
Apache Arrow Apache Arrow
2017-06-13
Apache Arrow Apache Arrow
2017-05-28
Mroonga! Mroonga!
2015-10-30