Query
クラスは、検索サービスに対するインデックスのクエリのリクエストを表します。
Query
は、google.appengine.api.search
モジュールで定義されます。
概要
Query
クラスを使用すると、インデックスでの検索について、クエリ文字列のほか、並べ替え順、制限、カーソルなどのオプションを指定できます。これらのオプションを設定するには、Query.options
パラメータに対して QueryOptions
クラスをインスタンス化します。
たとえば、次のコードでは件名に first
、いずれかの部分に good
を含むドキュメントの検索を要求しています。この例の場合、最大で 20 のドキュメントが返され、その結果について 1 つのドキュメント カーソルが返され、件名で降順に並べ替えて、作成者、件名、概要の各フィールドの他にスニペット フィールドのコンテンツが返されます。
from google.appengine.api import search ... results = index.search(search.Query( # Specify the query string using the Search API's Query language. query_string='subject:first good', options=search.QueryOptions( limit=20, cursor=search.Cursor(), sort_options=search.SortOptions( expressions=[ search.SortExpression(expression='subject', default_value='')], limit=1000), returned_fields=['author', 'subject', 'summary'], snippeted_fields=['content']))) ...
検索結果のセットごとにカーソルを返すことが可能です。このカーソルを使用すると、検索結果のページ間を移動しやすくなります。カーソルを取得するには、QueryOptions.cursor
に指定し、SearchResults.cursor
から次のリクエストのカーソルを抽出します。これにより、以下に示すとおり、最後に見つかったドキュメントから検索を続行できます。
... results = index.search( search.Query(query_string='subject:first good', options=search.QueryOptions(cursor=results.cursor)))
コンストラクタ
Query
クラスのコンストラクタは、次のように定義されます。
-
class Query(query_string, options=None, enable_facet_discovery=False, return_facets=None, facet_options=None, facet_refinements=None)
検索サービスに対してインデックスのクエリを要求し、該当のクエリについてパラメータを指定します。
引数
- query_string
インデックス内のドキュメントと照合するクエリ。 クエリはキーワードを含むブール式です。たとえば、
job tag:"very important" sent < 2011-02-28
というクエリでは、いずれかのフィールドにキーワードjob
、tag
フィールドにフレーズvery important
が含まれ、sent
の日付が 2011 年 2 月 28 日より前であるドキュメントが見つかります。- options
検索結果の後処理の指示を含む
QueryOptions
クラスのインスタンス化。- enable_facet_discovery
この検索クエリを満たし、返すドキュメントによって使用される最も関連性の高いファセットの検出を有効にします。
- return_facets
結果とともに特定のファセットを返されるファセット名として、反復可能な FacetRequest または basestring。
- facet_options
ファセットの処理を記述する FacetOption。
- facet_refinements
ファセット値に基づいて検索結果を除外するファセット絞り込みに使用される反復可能な FacetRefinement オブジェクトまたは絞り込みトークン文字列。異なるファセットの絞り込みは結合し、同じファセットの絞り込みは分離します。
結果値
Query
クラスの新しいインスタンス。
例外
- TypeError
query_string
が文字列ではないか、options
がQueryOptions
オブジェクトではない場合に発生します。- ValueError
query_string
を解析できなかった場合に発生します。
プロパティ
Query
クラスのインスタンスには次のプロパティがあります。- query_string
このリクエストで検索するクエリ文字列を返します。
- options
検索結果の後処理を定義する
QueryOptions
を返します。