Google App Engine(以降GAE)に全文検索サービスであるSearch APIが正式リリースされて、1年以上が経ちました。
Search APIの登場で、GAEの検索機能は飛躍的に上がり、GAEで開発を行なう上では必要不可欠なものになっていると言っても過言ではないかと思います。
そんなSearch APIについて、「Search API 詳細解説」というシリーズとして、全6編に渡ってSearch APIの概要・基本的な使い方の紹介から検索性能の調査、限界の検証をしたいと思います。
タイトル | |
Part1 | Search API 概要説明 |
Part2 | Search APIの使い方 登録・削除編 |
Part3 | Search APIの使い方 検索編 |
Part4 | Search API 詳細 検索性能編 |
Part5 | Search API 詳細 反映速度編 |
Part6 | Search API 詳細 限界値編 |
※タイトルは予告なく変わる場合があります。
それでは、本記事では概要を説明したいと思います。
Search APIってなに?
日本語に対応した全文検索サービスです。
2014年11月20日時点では、GAEからでしか利用できないサービスになっています。
Datastoreとは全く別のデータベースで、ストレージも課金も別になっています。
※課金参考URL:
https://cloud.google.com/appengine/docs/java/search/#Java_Search_API_quotas
https://cloud.google.com/appengine/docs/java/search/#Java_Search_API_pricing
Datastoreとは何が違うの?
真っ先に上げるとしたら、『検索条件を柔軟に指定できる』という点だと思っています。
Datastoreを使ったことのある開発者は、
- 「OR条件ができない」
- 「以下(もしくは以上)の条件に複数のプロパティを指定できない」
- 「datastore-indexes.xmlを書き忘れた」
などなどのDatastore特有の制限に引っ掛かったことがあるかと思います。
Search APIでは、これらの制限はなく、柔軟に検索条件を指定できます。
Search APIは検索用データベース、Datastoreは基本的にはデータ保存用データベースという認識でいます。
複雑な検索でない場合は、Datastoreのクエリを使ったりもしますが。
また、Datastoreとは全く別サービスですので、使われる用語も違います。下記対応表で確認してみてください。
Datastoreでの用語 | Search APIでの用語 | RDBMSでの用語 |
Kind | Index | Table |
Property | Field | Column |
Entity | Document | Record |
Search APIに制限は無いの?
制限はもちろんあります。
ざっとですが、以下のような制限や注意事項があります。
- GAEからしか利用できない
- 1 Indexの合計サイズは10GBまで登録できる
- 一度に書き込めるDocumentの件数の限界(DELETEも同じ)は200 Document
- 1 Documentに書けるサイズは1MB
- Field名は500文字まで
- Field名に使えるのは文字はASCIIだけ(実際に使えるのは、英数字と_くらい)
- Field名の始まりはアルファベットのみ
- Fieldに使用できる型は、下記の6つのみ
- Text:1048576文字
- HTML:1048576文字
- Atom: 500文字
- Number: 倍精度で-2147483647?2147483647
- Date: java.util.Dateで保存。ただし、検索条件では時分秒は考慮されない
- GeoPoint: 緯度経度
- Documentは更新ではなく作り直し
※参考URL: https://cloud.google.com/appengine/docs/java/search/
?1 Indexの合計サイズやFieldに使用できる型に制限があるので、データストレージにはやはり向かず、検索用かな、と思ってしまいます。
最後に上げた「Documentは更新ではなく作り直し」は、Search APIで開発する時に一番気を付けないといけないところかもしれません。
簡単ではありますが、Search APIについて、どんなものか少しは分かっていただけたのではないでしょうか?
次回Part2は、実際にSearch APIを使ってDocumentの書き込み、削除の処理を実装してみましょう。
Part2 Search APIの使い方 登録・削除編はこちらから
Search API詳細解説シリーズ
タイトル | |
Part1 | Search API 概要説明 |
Part2 | Search APIの使い方 登録・削除編 |
Part3 | Search APIの使い方 検索編 |
Part4 | Search API 詳細 検索性能編 |
Part5 | Search API 詳細 反映速度編 |
Part6 | Search API 詳細 限界値編 |