QueryOptions クラス

QueryOptions クラスは、アプリケーションのニーズに応じてクエリ結果の後処理のオプションを提供します。このクラスは Query.options 引数の options として作成します。

Query は、google.appengine.api.search モジュールで定義されます。

概要

QueryOptions クラスは、特定のクエリについて結果の後処理のオプションを提供します。オプションには、結果の並べ替え、いずれのドキュメント フィールドを返すかの制御、フィールドのスニペットの生成、複雑なスコアリング式による計算と並べ替えなどがあります。

検索結果のページにランダムにアクセスしたい場合、offset を使用できます:

from google.appengine.api import search
...
# get the first set of results
page_size = 10
results = index.search(search.Query(query_string='some stuff',
    options=search.QueryOptions(limit=page_size))

# calculate pages
pages = results.number_found / page_size

# user chooses page and hence an offset into results
next_page = ith * page_size

# get the search results for that page
results = index.search(search.Query(query_string='some stuff',
    options=search.QueryOptions(limit=page_size, offset=next_page))

たとえば、次のコードでは subject フィールドに first があり、任意のフィールドに good があるドキュメントの検索を要求しています。この例の場合、最大で 20 のドキュメントが返されます。結果の次のページのカーソルを要求すると、その結果セットについて別のカーソルが返されます。結果はタイトルの降順で並べ替えられ、作成者、タイトル、概要の各フィールドの他にスニペット フィールドのコンテンツが返されます。

...
results = index.search(search.Query(
    query='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 クラスのコンストラクタは、次のように定義されます。

class QueryOptions(limit=20, number_found_accuracy=None, cursor=None, offset=None, sort_options=None, returned_fields=None, ids_only=False, snippeted_fields=None, returned_expressions=None)

検索クエリ結果を定義するオプションを指定します。

引数

limit

結果で返されるドキュメントの数の上限。

number_found_accuracy

SearchResults.number_found の正確性に関する最小要件。設定した場合、少なくともその数値までは正確性が保たれます。たとえば、100 に設定すると、number_found_accuracy が 100 以下の場合、SearchResults オブジェクトはすべて正確となります。

cursor

次の結果セットを取得する場所、または SearchResults で次のカーソルを提供する場所を記述するカーソル。

offset

offset は、検索結果でスキップするドキュメントの数を表します。クエリ カーソルの代替手段として使用するものです。オフセットを使用すると、結果にランダムにアクセスできます。オフセットはカーソルよりも(インスタンス時間の面で)高くつきます。cursor と offset を両方一緒に使用することはできません。オフセットを使用した場合、ScoredDocument.cursorScoredDocument.cursor でカーソルは返されません。

sort_options

検索結果の多次元の並べ替えを指定する SortOptions オブジェクト。

returned_fields

検索結果で返される反復可能なフィールドの名前。

ids_only

ドキュメント ID のみを返します。いずれのフィールドも返されません。

snippeted_fields

検索結果の式でスニペット化して返される、反復可能なフィールドの名前。

returned_expressions

検索結果で評価して返される、反復可能な FieldExpression。

結果値

QueryOptions クラスの新しいインスタンス。

例外

TypeError

不明な iterator_options または sort_options が渡されました。

ValueError

ids_onlyreturned_fields を併用する場合。

プロパティ

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

limit

結果で返されるドキュメントの数の上限を返します。

number_found_accuracy

SearchResults.number_found の正確性に関する最小要件を返します。

cursor

クエリのカーソルを返します。

offset

検索結果でスキップするドキュメントの数を返します。

sort_options

SortOptions オブジェクトを返します。

returned_fields

検索結果で返される反復可能なフィールドの名前を返します。

ids_only

検索結果で のみを返します。

snippeted_fields

検索結果でスニペット化して返される反復可能なフィールド名を返します。

returned_expressions

検索結果で返される反復可能な FieldExpression を返します。