Query
类表示请求搜索服务对索引进行查询。
Query
在模块 google.appengine.api.search
中定义。
简介
借助 Query
类,您可以为索引搜索指定查询字符串和其他选项,例如排序顺序、限制和游标。通过将 QueryOptions
类实例化为 Query.options
参数,您可以对这些选项进行设置。
例如,以下代码段发起一个请求来搜索主题中出现 first
且任何位置出现 good
的文档,最多返回 20 个文档,为每个结果返回单个文档游标,按主题降序排列,返回作者、主题和摘要字段以及摘录的字段内容。
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 或作为构面名称的基础字符串的迭代,可返回带有结果的特定构面。
- facet_options
描述构面处理的 FacetOption。
- facet_refinements
FacetRefinement 对象或优化词法单元字符串的迭代,用于根据构面值过滤出搜索结果。不同构面的优化将结合,而同一构面的优化将分离。
结果值
Query
类的新实例。
异常
- TypeError
当
query_string
不是字符串或options
不是QueryOptions
对象时引发。- ValueError
无法解析
query_string
时引发。
属性
Query
类的实例具有以下属性:- query_string
返回要在该请求中搜索的查询字符串。
- options
返回用于定义搜索结果后处理的
QueryOptions
。