쿼리 클래스

Query 클래스는 색인을 쿼리하기 위한 검색 서비스의 요청을 나타냅니다.

Querygoogle.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일 이전인 문서를 찾습니다.

옵션

검색결과 후처리를 위한 지침을 적용하는 QueryOptions 클래스의 인스턴스화입니다.

enable_facet_discovery

이 검색 쿼리를 충족하는 문서에 사용된 가장 관련성 높은 속성을 탐색하고 반환하도록 합니다.

return_facets

결과와 함께 특정 속성을 반환하기 위한 속성 이름으로서 FacetRequest 또는 basestring의 반복 가능

facet_options

속성 처리를 설명하는 FacetOption

facet_refinements

속성 값을 기준으로 검색결과를 필터링하는 데 사용되는 FacetRefinement 객체 또는 상세검색 토큰 문자열의 반복 가능. 다른 속성의 상세검색은 결합, 같은 속성의 상세검색은 분리가 됩니다.

결과 값

Query 클래스의 새 인스턴스입니다.

예외

TypeError

query_string이 문자열이 아니거나 optionsQueryOptions 객체가 아닌 경우 발생합니다.

ValueError

query_string을 파싱할 수 없는 경우 발생합니다.

속성

Query 클래스의 인스턴스에는 다음 속성이 있습니다.

query_string

이 요청에서 검색할 쿼리 문자열을 반환합니다.

옵션

검색결과 후처리를 정의하는 QueryOptions를 반환합니다.