偏差値40からのはてなブログ生活

頑張って書いてみる

groongaを囲む夕べ 2 に行ってきた

最近groongaにちょっと興味があったので行って来ました。
http://atnd.org/events/20446


以下自分用メモです。
(色々端折ってます、メも取ってないところも多いです)

id:nokuno さんの記事がオススメです
http://d.hatena.ne.jp/nokuno/20111129/1322622089

groonga村

導入実績

  • ぐるなび/レストラン検索
  • スカパー/番組情報検索
  • 転職サイト等
  • buzztter

groongaの良いところ

  • 索引の即時更新
  • SQLでつかえる

他のプロダクトの方が優れているところ

  • 機能
  • エコシステム
  • 書籍

API

  • rroonga(るるんが)
  • mroonga(むるんが)
  • groonga command
    • ついてくる
  • nroonga(ぬるんが)
    • node.js
  • textsearch_groonga
    • postgres

新年の収穫の祭り

  • 森大二郎氏
    • groongaの創始者
      • ※恥ずかしながら末永さん(グニャラくん)が創始者だとおもってた
  • 最初は2chの検索
  • 索引の動的構築ひとすじ
  • 転置索引の動的構築は煩雑
  • 索引の静的構築
    • 構築完了すると検索可能
  • 索引の動的構築
    • 検索可能な状態を維持しながら構築
  • カラムストア機能
    • 集計が得意
    • 圧縮効率が追求しやすい
  • 静的構築も今後やる
    • オフラインで作るときは性能が良い
  • 行く末
    • カラムストアの性能強化
    • 索引の圧縮方式の拡充
      • 参照頻度に応じて圧縮効率を
    • 類似文字列検索
    • 頻出パターン抽出
    • ストリーム処理
    • スキーマレス化
    • データの分布に応じて自動的にデータ構造を最適化

mroongaのご紹介

  • むるんが
  • Mysqlのストレージエンジン
  • 他のストレージエンジンに全文検索機能を追加することが可能
    • mroonga経由で他のストレージエンジンを叩く
  • 更新時にロックしない
  • 位置情報検索も対応
    • 点のみ
  • マルチカラムインデックス
    • rename/alter table対応
  • mariaDBにバンドルされる予定
  • spider storage engineと組み合わせてスケールアウトできる

Geographical Searching

  • 利用
    • レストラン検索
    • 地図検索
    • 駅検索
    • GPS検索
  • 緯度経度検索
    • 矩形
    • 円形
  • 距離について
    • 対応してる
    • 方形近似
      • はやい
      • 高精度はだめ
    • 球面近似
    • ヒュベニ
      • 楕円体上(地球は時点の遠心力で楕円になっている)
      • おそい

groonga with postgresql

  • @choplin さん
  • textsearch_groonga
  • groonga_fdw
    • groongaを外部データとして扱う
    • sql/medを利用
      • sql2003で定義
  • FDW
    • postgresql9.1から
    • 内部ストレージを叩かずに他のデータソースからもってくる事が可能
    • 参照のみ

mrrongaベンチマーク

めもってません><

mroongaの未サポート機能

  • UTF8以外
    • 対応予定
  • COLLATION
  • condition pushdown
  • 0度跨ぎの緯度経度
  • ほかにも

groonga開発予報

  • grn_dat
    • 文字列をIDと関連付けるモジュール
  • grn_pat
    • 前方一致検索
  • grn_hash
    • ハッシュ表
    • 前方一致をサポートしない
  • grn_dat
    • ダブル配列
    • 前方一致
    • 高速
  • どれも参照ロックフリー

質疑

※メモったのは1つだけ

  • groongaの構成について→ぐるなびさん
    • 3台
      • ロードバランサで割り振ってる
      • 3台とも同じデータ

感想

  • groongaいいかも
    • 思っていたより導入しやすそう
      • mysql/postgresとの連携はもちろん、カラムストアを積んでいて単体でも使える
  • 索引の動的作成のお陰で手軽?にリアルタイム検索が実現できそう


近いうち開発環境に入れてみようと思います。
では。