Query クラス

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 というクエリでは、いずれかのフィールドにキーワード jobtag フィールドにフレーズ 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 が文字列ではないか、optionsQueryOptions オブジェクトではない場合に発生します。

ValueError

query_string を解析できなかった場合に発生します。

プロパティ

Query クラスのインスタンスには次のプロパティがあります。

query_string

このリクエストで検索するクエリ文字列を返します。

options

検索結果の後処理を定義する QueryOptions を返します。