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

27
PHP かか Groonga かかかかかかかかかかかかか かか2014/09/03 ConoHa presents – Groonga "How-To" Talks do_aki

Upload: doaki

Post on 15-Jan-2015

857 views

Category:

Technology


8 download

DESCRIPTION

2014/09/03 ConoHa presents - Groonga "How-To" Talks

TRANSCRIPT

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

PHP からGroonga を使う

にはこんなコードになるよ!2014/09/03

ConoHa presents – Groonga "How-To" Talks

do_aki

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

@do_aki

@do_aki

http://do-aki.net/

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

SIDE

立場

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

蒼翠

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

このは派

あんず派(C)GMO Internet, Inc.

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

あんず派(C)GMO Internet, Inc.

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

以上

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

access methods HTTP GQTP Direct

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

access methods• socket ・ stream ・ curl• nise-nabe/groonga-http-php

HTTP

• socket ( たぶんできる )• groonga-php (groonga bundle)

GQTP

• phroonga (rsky)• proonga (Yujiro3)

Direct

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

HTTP

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

nise-nabe/groonga-http-php

• guzzle を利用した groonga http client

• curl or stream• php >=5.3.0• packagistcomposer.json{ “require”: { "nise-nabe/groonga-http-php": "dev-master" }}

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

Sample Code

• https://gist.github.com/do-aki/419953a481d0289ffbbb

• Client を new して コマンドに対応したメソッドを呼ぶ形

• エラーは例外として補足できる• シンプル

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

GQTP

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

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

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

Sample Code

• https://gist.github.com/do-aki/d91584e38efd9f844d30

• 最低限の実装• このままつかうのはシンドイ• エラー内容を補足できない

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

Direct

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

ふるんが!

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

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

Sample Code

• https://gist.github.com/do-aki/b855f211f5a301f60920

• select 出来ない• 実用段階にない

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

The PHP bindings of Groonga.

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

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

ここまでのまとめ

HTTP => シンプルだけど使え

GQTP => エラーを補足できな

Direct => Umm…

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

現状 HTTP 以外に選択肢なし

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

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)

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

php の新しい機能を使ってみたかっただけ

まだまだ使い方や挙動含めインタフェースが大幅に変わる可能性高いので注意

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

まとめ

• 今のところ、 http でのアクセスが確実• パフォーマンス必要なら別言語かな……

( http と gqtp でどれだけ違うか判らないけど)

• php でぐるんぐるんする人少ない?=> 第一人者になれるチャンス

• dooaki/phroonga は気長にやるつもり

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

Question?

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

ありがとうございました

2014/09/03 ConoHa presents –

Groonga "How-To" Talksdo_aki