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
,以及 2011 年 2 月 28 日前的sent
日期。- 選項
按照搜尋結果後續處理的操作說明建立
QueryOptions
類別的執行個體。- enable_facet_discovery
用於探索文件所用關聯性最高且符合此項搜尋查詢的 Facet,並傳回這些 Facet。
- return_facets
FacetRequest 的可疊代項目或 Facet 名稱 basestring,用於 隨結果一起傳回特定 Facet。
- facet_options
FacetOption 說明 Facet 處理方式。
- facet_refinements
可迭代的 FacetRefinement 物件或精修符記字串,用於根據商情項目值篩除搜尋結果。屬於不同 Facet 的分類標籤會以連接詞連接,屬於相同 Facet 的分類標籤則會以並非連接。
結果值
Query
類別的新例項。
例外狀況
- TypeError
當
query_string
不是字串,或options
不是QueryOptions
物件時,會引發此例外狀況。- ValueError
當無法剖析
query_string
時,系統會擲回此例外狀況。
屬性
Query
類別的執行個體具有下列屬性:- query_string
會傳回這項要求欲搜尋的查詢字串。
- 選項
會傳回定義搜尋結果後續處理作業的
QueryOptions
。