概要
2014.5.15 Groongaドキュメント読書会に参加した。
まず、読書会の目的、進め方について説明があり、その後輪読形式でGroongaのドキュメントを読み進めた。そして最後に簡単なふりかえりがあった。
理解したこと
今回読んだGroongaの特徴について、理解したことを以下に記録する。
1.1Groongaの概要
-
転置索引とは
- indexは検索対象を間引くためのもの。検索速度を上げるために必要なもの。
転置索引(転置インデックス)は キーワードに対して、それが含まれる文章がどこにあるかという情報をマッピングしたもの。転置索引があることで早く検索結果を返すことができる。
- indexは検索対象を間引くためのもの。検索速度を上げるために必要なもの。
-
列指向とは
- 列指向の対義語は行指向。列で引くことが得意、列の追加のコストが低い。特定のデータを集計したりするのが得意であることから分析等に活用できる
1.2全文検索と即時更新
Solrでは、複数の転置索引を統合するような重い処理を必要とするようだ。転置索引を作るだけなので、そのうちに転置索引が増えてくる。そうすると転置索引を統合しないといけなくなる。
一方Groongaは転置索引が変更される前提となっているので、転置索引を統合するような作業は発生しない。
1.3カラムストアと集計クエリ
列指向であるからこそ、集計、分析が得意。
1.4転置索引とトークナイザ
Groongaは形態素方式とN-gram方式の両方に対応している。
1.5共有可能なストレージと参照ロックフリー
例えばMroongaをつかって、MySQL経由でgroongaのデータベースを使っているケースに
おいて、同時にGroongaのHTTPサーバからGroongaのデータベースを操作することができる。Groongaのデータベースは複数プロセスから触ることができる。
1.6位置情報検索
位置情報によってインデックスをつくると、検索できる
1.7Groongaライブラリ
Cのライブラリを提供するので、いろんな関連プロダクトがある。
1.8 Groongaサーバ
GQTPは速度を出すためにカリカリにチューンしたGroonga独自のプロトコル。
1.9Groongaストレージエンジン
GroongaストレージエンジンはMroongaに修正する必要あり。
ふりかえり
参加者から活発な質問があり、その回答を通じて自分の理解を深めることができたので、目的は達成したと言える。