QueryOptions
类根据应用的需要提供后处理查询结果的选项。您可以在 Query.options 参数中将类构造为 options
。
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.cursor
或ScoredDocument.cursor
中不返回游标。- sort_options
一个指定对搜索结果进行多维排序的
SortOptions
对象。- returned_fields
要在搜索结果中返回的字段名称的可迭代对象。
- ids_only
仅返回文档 ID,不返回任何字段。
- snippeted_fields
在搜索结果表达式中摘录和返回的字段名称的可迭代对象。
- returned_expressions
在搜索结果中评估并返回的 FieldExpression 的可迭代对象。
结果值
QueryOptions
类的新实例。
异常
- TypeError
如果传递的 iterator_options 或 sort_options 未知。
- ValueError
如果同时使用
ids_only
和returned_fields
。
属性
Query
类的实例具有以下属性:
- limit
返回要在结果中返回的文档的数量限制。
- number_found_accuracy
返回 SearchResults.number_found 的最低准确率要求。
- cursor
返回查询的游标。
- offset
返回搜索结果中要跳过的文档数。
- sort_options
返回 SortOptions 对象。
- returned_fields
返回要在搜索结果中返回的字段名称的可迭代对象。
- ids_only
仅在搜索结果中返回
- snippeted_fields
返回将在在结果中摘录并返回的字段名称的可迭代对象。
- returned_expressions
返回将在结果中返回的 FieldExpression 的可迭代对象。