ThriftDBを試してみました
こんばんは。笹亀です。
最近、運動も兼ねて近くのバッティングセンターへ通うことを心がけています。
野球はあまりやったことないですが、120kmくらいでしたらストレートのみですが、
ボールに当てることはできました。結構な打ち込みをするので、2日間くらい筋肉痛がひどいです。
さて、本日は先日にWebサイトをまわっていると気になる記事を見つけました。
「ThriftDB」というプラットフォームです。簡単に説明するとNoSQLを使った全文検索ができるプラットフォームです。現在のところ提供方法はAPIのみの提供となっておりますが、アプリケーションなどに容易に組み込めることを売りにしております
。今後はオープンソースで公開する予定になっており、それぞれのサーバへも簡単に設置して内部で動かすこともできるようなるではないでしょうか。ものすごく気になったので早速使ってみましたので、使用方法などを解説させていただきます。
注意:英語サイトしか、なので頑張って読みましょう。
専用のサイトは下記になります。
http://www.thriftdb.com/
1.まずはβ用のアカウントを登録しましょう
https://www.thriftdb.com/beta/request
2.登録したメールアドレスにβアカウント作成用のURLが記載されているのでクリックしてアカウントを作成しましょう
こんなメールが送られてくる
3.アカウントを作成できたらBucketを作成する(test_bucketを作成)
バケットを作成するのはAPIを使用したいサーバでcurlを使用してアクセスをする必要があります。
また作成したアカウント情報を使用して、作成をする必要があります
成功すると下記のようなレスポンスを返します
4.Collectionに使用する定義ファイルを作成する
ドキュメントに記載があるので、こちらを参考に作成を試みる
適当な名前を付けて保存する(car-schema.json)
5.Collectionを作成するコマンドを作成したスキーマを実行する
成功すると下記のようなレスポンスを返します
6.次にデータのitemを追加するための定義ファイルを作成します。
ドキュメントに記載があるので、こちらを参考に作成を試みる
一つだけだとあまり楽しくないので「car1, car2, car3」までのデータを作ってみます。
cars_1.json
cars_2.json
cars_3.json
7.itemを作成するコマンドを作成したスキーマを実行する
curl -d @cars_1.json -X PUT "http://{username}:{password}@api.thriftdb.com/test_bucket/cars/1"
curl -d @cars_2.json -X PUT "http://{username}:{password}@api.thriftdb.com/test_bucket/cars/2"
curl -d @cars_3.json -X PUT "http://{username}:{password}@api.thriftdb.com/test_bucket/cars/3"
成功すると下記のようなレスポンスを返します
8.serachAPIを利用して登録されたitemを検索してみる
ドキュメントに記載があるので、こちらを参考に検索を試みる
いろいろなパターンで検索がかけれるようですが、ここでは基本の全体からの検索を例にします。
http://{username}:{password}@api.thriftdb.com/test_bucket/cars/_search?q=販売
※複数件の結果が返る文字列にします
簡単なPHPを作成してAPI経由でアクセスして検索処理をします。
JSON形式で結果が返ってくるのでPHPの関数(json_decode)でデコードします。
実行結果
ここまでの処理で一通りの作業は完了です。まだどのくらいのレスポンスで本当に高速なのかは試せていませんが、βからリリースされたときにはレスポンスの検証なども実際にできると思います。更に自サーバ上に簡単に設置ができるようになったら、頻繁に使われるものになるのではないかと期待しております。
今後の動向も追っていきたいとおもっております。
またこのブログは、TechCrunch様の記事を参考にさせていただきました。
http://jp.techcrunch.com/archives/20110524thriftdb-wants-to-be-the-amazon-web-services-of-search/
最近、運動も兼ねて近くのバッティングセンターへ通うことを心がけています。
野球はあまりやったことないですが、120kmくらいでしたらストレートのみですが、
ボールに当てることはできました。結構な打ち込みをするので、2日間くらい筋肉痛がひどいです。
さて、本日は先日にWebサイトをまわっていると気になる記事を見つけました。
「ThriftDB」というプラットフォームです。簡単に説明するとNoSQLを使った全文検索ができるプラットフォームです。現在のところ提供方法はAPIのみの提供となっておりますが、アプリケーションなどに容易に組み込めることを売りにしております
。今後はオープンソースで公開する予定になっており、それぞれのサーバへも簡単に設置して内部で動かすこともできるようなるではないでしょうか。ものすごく気になったので早速使ってみましたので、使用方法などを解説させていただきます。
注意:英語サイトしか、なので頑張って読みましょう。
専用のサイトは下記になります。
http://www.thriftdb.com/
1.まずはβ用のアカウントを登録しましょう
https://www.thriftdb.com/beta/request
2.登録したメールアドレスにβアカウント作成用のURLが記載されているのでクリックしてアカウントを作成しましょう
こんなメールが送られてくる
- Thanks
for requesting a ThriftDB beta account. Click on this link to create your new account: - --URL--
- Have
fun and let us know what you think! - Thanks,
- The
ThriftDB Team
3.アカウントを作成できたらBucketを作成する(test_bucketを作成)
バケットを作成するのはAPIを使用したいサーバでcurlを使用してアクセスをする必要があります。
また作成したアカウント情報を使用して、作成をする必要があります
- curl
-X PUT "http://{username}:{password}@api.thriftdb.com/test_bucket"
成功すると下記のようなレスポンスを返します
4.Collectionに使用する定義ファイルを作成する
ドキュメントに記載があるので、こちらを参考に作成を試みる
- {
"__class__": "StructSchema", "make": { "__class__" : "AttributeDescriptor", "thrift_index" : 1, "datatype" : {"__class__": "StringType"} }, "model": { "__class__" : "AttributeDescriptor", "thrift_index" : 2, "datatype" : {"__class__": "StringType"} }, "year": { "__class__" : "AttributeDescriptor", "thrift_index" : 3, "datatype" : {"__class__": "IntegerType"} }, "description": { "__class__" : "AttributeDescriptor", "thrift_index" : 4, "datatype" : {"__class__": "TextType"} }, "color": { "__class__" : "AttributeDescriptor", "thrift_index" : 5, "datatype" : {"__class__": "StringType"} } - }
適当な名前を付けて保存する(car-schema.json)
5.Collectionを作成するコマンドを作成したスキーマを実行する
- curl
-d @car-schema.json -X PUT "http://{username}:{password}@api.thriftdb.com/test_bucket/cars"
成功すると下記のようなレスポンスを返します
6.次にデータのitemを追加するための定義ファイルを作成します。
ドキュメントに記載があるので、こちらを参考に作成を試みる
一つだけだとあまり楽しくないので「car1, car2, car3」までのデータを作ってみます。
cars_1.json
- {
"make": "ホンダ", "model": "ODYSSEY", "year": 1994, "description": "オデッセイ(Odyssey)は、本田技研工業が生産・発売するミニバン型の乗用車である。", "color": "black" - }
cars_2.json
- {
"make": "トヨタ", "model": "PRIUS", "year": 1997, "description": "プリウス(Prius)は、トヨタ自動車が1997年に製造・発売を開始した世界初の量産ハイブリッド専用車である。現在、世界44ヶ国で販売されていて、車名はどの国においてもプリウスを名乗る。", "color": "white" - }
cars_3.json
- {
"make": "ニッサン", "model": "SERENA", "year": 1991, "description": "セレナ (SERENA) は、日産自動車が販売するミニバン。初代には商用モデルの「カーゴ」もあった。C25型は日産車体が製造を担当していたが、C26型では日産自動車九州工場で製造を担当する。なお、C25型以降は「ランディ」としてスズキへOEM供給されている。", "color": "black" - }
7.itemを作成するコマンドを作成したスキーマを実行する
curl -d @cars_1.json -X PUT "http://{username}:{password}@api.thriftdb.com/test_bucket/cars/1"
curl -d @cars_2.json -X PUT "http://{username}:{password}@api.thriftdb.com/test_bucket/cars/2"
curl -d @cars_3.json -X PUT "http://{username}:{password}@api.thriftdb.com/test_bucket/cars/3"
成功すると下記のようなレスポンスを返します
8.serachAPIを利用して登録されたitemを検索してみる
ドキュメントに記載があるので、こちらを参考に検索を試みる
いろいろなパターンで検索がかけれるようですが、ここでは基本の全体からの検索を例にします。
http://{username}:{password}@api.thriftdb.com/test_bucket/cars/_search?q=販売
※複数件の結果が返る文字列にします
簡単なPHPを作成してAPI経由でアクセスして検索処理をします。
JSON形式で結果が返ってくるのでPHPの関数(json_decode)でデコードします。
- $result
= file_get_contents('http://{username}:{password}@api.thriftdb.com/test_bucket/cars/_search?q=%E8%B2%A9%E5%A3%B2'); - print_r(json_decode($result));
実行結果
ここまでの処理で一通りの作業は完了です。まだどのくらいのレスポンスで本当に高速なのかは試せていませんが、βからリリースされたときにはレスポンスの検証なども実際にできると思います。更に自サーバ上に簡単に設置ができるようになったら、頻繁に使われるものになるのではないかと期待しております。
今後の動向も追っていきたいとおもっております。
またこのブログは、TechCrunch様の記事を参考にさせていただきました。
http://jp.techcrunch.com/archives/20110524thriftdb-wants-to-be-the-amazon-web-services-of-search/
コメント
-
- hara
- 2011年06月04日 18:59
- いいね?
コメントフォーム
トラックバックURI
最近の記事
JavaScriptのクロスドメイン問題対応方法 [2012年05月17日 : 笹亀弘]
JavaScriptのコーディング規約を気軽にチェック [2012年05月14日 : 中川善樹]
誕生日プレゼント [2012年05月10日 : 阿部恵]
イラストでわかる!git入門の入門 [2012年05月09日 : 志田仁美]
【CSS3】HSL色空間による色指定のすゝめ [2012年05月09日 : 橋本章史]
インスピレーションをかきたてるポスターデザインのまとめ記事のまとめ [2012年04月25日 : 鴨田健次]
エンジニアの英会話 〜とっさの一言〜 [2012年04月19日 : 斉藤勝也]
イコライザーをFireworksで描いてみました [2012年04月16日 : 和田記光]
SFNewTech Japan Night のファイナリストに選出されました!(他、もろもろの出展の御案内) [2012年04月06日 : 小林有佳]
使えるとちょっと便利なSSHのTIPS [2012年04月04日 : 牧野克俊]












