QueryOptions 类

QueryOptions 类根据应用的需要提供后处理查询结果的选项。您可以在 Query.options 参数中将类构造为 options

注意:**我们不再建议采用这种解决方案。**使用此 API 的应用只能在 Python 2 运行时环境中运行,并且必须先升级到[建议的解决方案] (/appengine/docs/standard/python/migrate-to-python3/migrating-services#migration_paths_for_bundled_services),然后才能迁移到 Python 3 运行时。

Query 在模块 google.appengine.api.search 中定义。

简介

QueryOptions 类为特定查询提供后处理结果选项。这些选项具有以下功能:对结果进行排序,控制返回哪些文档字段,生成字段代码段以及按复杂评分表达式计算和排序。

如果您希望随机访问搜索结果页面,则可以使用偏移量:

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

偏移指在搜索结果中跳过的文档数。这是一种替代使用查询游标的方法。它允许随机访问结果。偏移比游标更昂贵(就实例小时数而言)。您可以使用游标或偏移,但不能同时使用两者。使用偏移意味着 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 的可迭代对象。