空のクエリで将来の検索サブスクリプションを作成したいのですが、GAE で例外が発生します
QuerySyntaxError: query:'' detail:'Query is empty.'
これは、空のクエリを許可する Search API と互換性がありません。回避策はありますか?問題を提出する必要がありますか?
空のクエリで将来の検索サブスクリプションを作成したいのですが、GAE で例外が発生します
QuerySyntaxError: query:'' detail:'Query is empty.'
これは、空のクエリを許可する Search API と互換性がありません。回避策はありますか?問題を提出する必要がありますか?
Prospective Search Service は、ドキュメントのストリームをフィルタリングするアプリケーションをサポートすることを目的としています。一致するすべてのドキュメントよりも少ないドキュメントを必要とするアプリケーション。このようなアプリケーションでは、通常、「空のクエリ」はバグの証拠と見なされます。確かに、空のクエリはさまざまなデバッグ目的で役立つ場合がありますが、本番環境での使用を念頭に置いてインターフェイスのコントラクトを設計するという決定が下されました。
Will Brown が提案したように、すべてのドキュメントに一致するサブスクリプションが必要な場合は、定数値を持つダミー フィールドをドキュメントに挿入し、そのフィールドと値だけに一致するクエリを作成します。「すべてのドキュメント」が必要なまれなケースに対して利用できる簡単な回避策があることを考えると、空のクエリをサポートする可能性は低いと思います。空のクエリの禁止は、AppEngine コードだけでなく、AppEngine が Prospective Search Service を提供するためにアクセスするバックエンド サーバーにもあることに注意してください。
「検索 API」(実際には「レトロスペクティブ検索 API」と呼ばれる必要があります) は空のクエリをサポートする場合がありますが、将来の検索のリソース使用パターンがレトロスペクティブ検索のリソース使用パターンとは非常に異なることを認識することが重要です。たとえば、ドキュメント インデックス (レトロスペクティブ検索を使用) とクエリ インデックス (プロスペクティブ検索を使用) の両方に、毎秒数百のドキュメントをストリーミングしているアプリケーションがあるとします。このようなシステムでは、空のレトロスペクティブ クエリは、そのクエリが送信されるたびに少数のドキュメントしか返されません。一方、プロスペクティブ クエリは、すべてのドキュメントのリアルタイム ストリームを生成します。このように、いくつかの潜在的なクエリが存在するだけで、アプリケーションに大きな負荷がかかる可能性があります。一般的に、消防ホースが必要な場合は、