*

Search API詳細解説 Part1「Search API 概要説明」

公開日: : 最終更新日:2015/04/17 投稿者: GAE

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つのみ
    1. Text:1048576文字
    2. HTML:1048576文字
    3. Atom: 500文字
    4. Number: 倍精度で-2147483647〜2147483647
    5. Date: java.util.Dateで保存。ただし、検索条件では時分秒は考慮されない
    6. 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 詳細 限界値編

関連記事

東京リージョンによってGAEの速度は早くなったのか!?

ついにGAEに東京リージョンが新設されました!!サービス開始からGAEを触れていたユーザにと

記事を読む

たったの15分でできるGAE/GO入門 標準APIその1

知っておけば必ず開発が楽になる! GAE/Go入門の本連載ですが、前回は第一弾として「PaaS最前

記事を読む

たった1つのCloud SQLインスタンスで複数のWordPressを動かす

皆様こんにちは。 前回はCloudSQLやCloud Storageを用いてWordpress

記事を読む

Datastoreの仕組み ~Consistencyについて~

はじめに スケーラビリティと可用性が高いと言われているGoogle Cloud Datastore

記事を読む

1つのエンティティにプロパティをいくつまで作れるか(パート2)

1つのエンティティにプロパティをいくつまで作れるか 1つのエンティティにプロパティをいくつまで

記事を読む

専用Memcacheは共有Memcacheよりも本当に性能が高いのか検証する Part2

前回のGAEの「専用Memcacheは共有Memcacheよりも本当に性能が高いのか検証する」が投稿

記事を読む

GAEのautomatic scalingとbasic scalingを徹底比較!!

Google App Engine(以下GAE)(※1)は、GCPユーザならば言わずと知れた

記事を読む

東京リージョン内でのGAE・GCS・GCE間の通信はこのくらいだった

11月8日に Google Cloud Platform にて待ちに待った日本リージョンがリ

記事を読む

GAリリース記念!!今更だけどGAE Flexible Environmentのチュートリアルを試してみた!

GAE Flexible Environment(以下FE)のGA(General Availa

記事を読む

Search API詳細解説 Part4「Search API 詳細 検索性能編」

Search API詳細解説シリーズ タイトル Part1Search API 概要説明

記事を読む

PAGE TOP ↑