SlideShare a Scribd company logo
PHPからGroonga 
を使うにはこんな 
コードになるよ! 
2014/09/03 
ConoHa presents – 
Groonga "How-To" Talks 
do_aki
@do_aki 
@do_aki 
http://do-aki.net/
立場 
SIDE
PHP から Groonga を使うにはこんなコードになるよ!
このは派 
あんず派 
(C)GMO Internet, Inc.
あんず派 
(C)GMO Internet, Inc.
以上
PHP から Groonga を使うにはこんなコードになるよ!
access methods 
 HTTP 
 GQTP 
 Direct
access methods 
HTTP 
• socket・stream・curl 
• nise-nabe/groonga-http-php 
GQTP 
• socket (たぶんできる) 
• groonga-php (groonga bundle) 
Direct 
• phroonga (rsky) 
• proonga (Yujiro3)
HTTP
nise-nabe/groonga-http-php 
• guzzleを利用したgroonga http client 
• curl or stream 
• php >=5.3.0 
• packagist 
composer.json 
{ 
“require”: { 
"nise-nabe/groonga-http-php": "dev-master" 
} 
}
Sample Code 
• https://gist.github.com/do-aki/ 
419953a481d0289ffbbb 
• Client をnew してコマンドに対応し 
たメソッドを呼ぶ形 
• エラーは例外として補足できる 
• シンプル
GQTP
groonga-php 
• groonga bundle のgqtp client 
• fedora 用のRPM (野良?) => オフィシャルだそうです 
• php extension “groonga” 
$ cd [groonga-source-dir]/bindings/php 
$ phpize 
$ ./configure 
$ make 
$ php -d extension=modules/groonga.so sample.php
Sample Code 
• https://gist.github.com/do-aki/ 
d91584e38efd9f844d30 
• 最低限の実装 
• このままつかうのはシンドイ 
• エラー内容を補足できない
Direct
phroonga (php-extension) 
• https://github.com/rsky/phroonga 
• php extension “groonga” 
• 4系で動かなかったので手を入れた 
ふるんが! 
$ git clone https://github.com/do-aki/php-phroonga 
$ cd phroonga 
$ phpize 
$ ./configure 
$ make 
$ php -d extension=modules/groonga.so sample.php
Sample Code 
• https://gist.github.com/do-aki/ 
b855f211f5a301f60920 
• select 出来ない 
• 実用段階にない
proonga (php-extension) 
• https://github.com/Yujiro3/proonga 
• php extension “groonga” 
• サンプルとてもよさげ 
• CentOS6 上のphp5.5 で動かず…… 
• PHP Fatal error: Internal zval's 
can't be arrays, objects or 
resources in Unknown on line 0 
The PHP bindings of Groonga.
ここまでのまとめ 
HTTP => シンプルだけど使える 
GQTP => エラーを補足できない 
Direct => Umm…
現状HTTP 以外に 
選択肢なし
dooaki/php-phroonga 
• 今作ってるもの 
• php >= 5.5.0 
• trait (クラスに機能を付与) 
• 遅延評価(generatorを利用) 
• 各種プロトコルに対応可能 
(http 以外まだないケド) 
• Active Record like (にしようかなー) 
• https://github.com/do-aki/php-phroonga 
• (https://gist.github.com/do-aki/b36c64e066bb947ea825)
php の新しい 
機能を使ってみ 
たかっただけ 
まだまだ使い方や挙動含めインタフェース 
が大幅に変わる可能性高いので注意
まとめ 
• 今のところ、http でのアクセスが確実 
• パフォーマンス必要なら別言語かな…… 
(http とgqtp でどれだけ違うか判らないけど) 
• php でぐるんぐるんする人少ない? 
=> 第一人者になれるチャンス 
• dooaki/phroonga は気長にやるつもり
Question?
ありがとう 
ございました 
2014/09/03 
ConoHa presents – 
Groonga "How-To" Talks 
do_aki

More Related Content

PPT
Hacking Vox and Plagger
PDF
Word pressのテーマは firephpでハックすれば 良かったのか
PDF
PHPデプロイツールの世界
PDF
FukuokaPHP 3
ODP
20101001 5分でわかるtrac pluginの作り方_slideshare
PDF
Goでこれどうやるの? 入門
PDF
PHPとJavaScriptの噺
PPTX
PHPで並列処理する ライブラリを作った
Hacking Vox and Plagger
Word pressのテーマは firephpでハックすれば 良かったのか
PHPデプロイツールの世界
FukuokaPHP 3
20101001 5分でわかるtrac pluginの作り方_slideshare
Goでこれどうやるの? 入門
PHPとJavaScriptの噺
PHPで並列処理する ライブラリを作った

What's hot (16)

PDF
はじめてLaravelさわった 第86回php勉強会
ODP
Pinoco phptal-phpcon-kansai
PDF
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
PDF
Djangoフレームワークの紹介
PDF
ヒカルのGo 資料 Webアプリケーションの作り方
PPTX
PHP x AWS でスケーラブルなシステムをつくろう
PDF
パッケージングの今と未来
PDF
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
PDF
PHPカンファレンス2016 初心者セッション
PDF
恋に落ちるデプロイツール
PDF
Webフレームワークを作ってる話 #osakapy
PDF
Pythonで検索エンジン2
PDF
pythonでオフィス快適化計画
PDF
作ったものを見せたかった話
PPTX
Seti@home on debian 20140725
PDF
PHPカンファレンス2014の懇親会飛び込みLT資料
はじめてLaravelさわった 第86回php勉強会
Pinoco phptal-phpcon-kansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
Djangoフレームワークの紹介
ヒカルのGo 資料 Webアプリケーションの作り方
PHP x AWS でスケーラブルなシステムをつくろう
パッケージングの今と未来
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
PHPカンファレンス2016 初心者セッション
恋に落ちるデプロイツール
Webフレームワークを作ってる話 #osakapy
Pythonで検索エンジン2
pythonでオフィス快適化計画
作ったものを見せたかった話
Seti@home on debian 20140725
PHPカンファレンス2014の懇親会飛び込みLT資料
Ad

Similar to PHP から Groonga を使うにはこんなコードになるよ! (20)

PPTX
20140903groonga発表資料
PDF
Groonga Meetup 2014/04/29
PDF
Dive into the Cloud with our buddy, lovely PHP!
PDF
Offline Hoogleで何処でもはすはす
PDF
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
PDF
20120423 hbase勉強会
PDF
Modern PHP Programming @ PFI Seminar
PPTX
Php入門
PPTX
Php in ruby
PDF
Niigata.pm #1
PDF
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PDF
PHPの今とこれから2014
PDF
Groonga族2014
PDF
Local php-100828 2
PDF
Mroonga・PGroonga導入方法
PDF
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
PDF
PHPという概念が存在しない退屈な世界
PDF
ゆるかわPhp#2
PDF
Groongaを支える取り組み
PDF
20130720 firefox os勉強会
20140903groonga発表資料
Groonga Meetup 2014/04/29
Dive into the Cloud with our buddy, lovely PHP!
Offline Hoogleで何処でもはすはす
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
20120423 hbase勉強会
Modern PHP Programming @ PFI Seminar
Php入門
Php in ruby
Niigata.pm #1
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PHPの今とこれから2014
Groonga族2014
Local php-100828 2
Mroonga・PGroonga導入方法
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
PHPという概念が存在しない退屈な世界
ゆるかわPhp#2
Groongaを支える取り組み
20130720 firefox os勉強会
Ad

More from do_aki (20)

PPTX
Tritonn から Elasticsearch への移行話
PPTX
php-src の歩き方
PPTX
PHP と SAPI と ZendEngine3 と
PPTX
PHPとシグナル、その裏側
PPTX
再考:列挙型
PPTX
signal の話 或いは Zend Signals とは何か
PPTX
PHP AST 徹底解説(補遺)
PPTX
PHP AST 徹底解説
PPTX
Writing php extensions in golang
PPTX
php7's ast
PPTX
N対1 レプリケーション + Optimizer Hint
PPTX
20150212 プレゼンテーションzen
PPTX
MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」
PPTX
20141017 introduce razor
PPTX
20141011 mastering mysqlnd
PPTX
php in ruby
PPTX
N:1 Replication meets MHA
PDF
Php radomize
PPTX
php and sapi and zendengine2 and...
PPTX
セキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editor
Tritonn から Elasticsearch への移行話
php-src の歩き方
PHP と SAPI と ZendEngine3 と
PHPとシグナル、その裏側
再考:列挙型
signal の話 或いは Zend Signals とは何か
PHP AST 徹底解説(補遺)
PHP AST 徹底解説
Writing php extensions in golang
php7's ast
N対1 レプリケーション + Optimizer Hint
20150212 プレゼンテーションzen
MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」
20141017 introduce razor
20141011 mastering mysqlnd
php in ruby
N:1 Replication meets MHA
Php radomize
php and sapi and zendengine2 and...
セキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editor

PHP から Groonga を使うにはこんなコードになるよ!

Editor's Notes

  • #9: mroonga じゃないよ groonga だよ mroonga x php の記事は多いけど、 groonga x php の記事少ない
  • #10: http -> groonga (–s –d) --protocol http (--port 10041) gqtp -> groonga (–s –d) (--protocol gqtp) (--port 10043)