1. ホーム
  2. google-app-engine

[解決済み] Google App Engine: GqlのLIKEクエリは可能ですか?

2022-08-21 09:51:58

質問

簡単な質問です。 SQLでは、もし私が数文字のテキストフィールドを検索したい場合、私は行うことができます。

SELECT blah FROM blah WHERE blah LIKE '%text%'

App Engineのドキュメントでは、これを実現する方法について言及されていませんが、十分に一般的な問題であることは間違いないでしょう。

どのように解決するのですか?

App Engine のデータベース バックエンドである BigTable は、数百万のレコードにスケールします。このため、App Engine ではテーブル スキャンになるようなクエリを実行することはできず、十分に入力されたテーブルではパフォーマンスが極端に低下します。

言い換えれば、すべてのクエリはインデックスを使用しなければなりません。このため = , >< のようなクエリです。(実際には != を使うこともできますが、APIではこの場合 >< といったクエリです)。 これは、開発環境があなたの行う全てのクエリを監視し、不足するインデックスを自動的にあなたの index.yaml ファイルに追加します。

をインデックス化する方法はありません。 LIKE クエリのインデックスを作成する方法がないので、単に利用できないだけです。

を見てみましょう。 このGoogle IOのセッション をご覧ください。