Class Kueri

Class Query mewakili permintaan di layanan penelusuran untuk mengkueri indeks.

Query ditentukan dalam modul google.appengine.api.search.

Pengantar

Class Query memungkinkan Anda menentukan string kueri dan opsi lainnya, seperti tata urutan, batas, dan kursor, untuk penelusuran pada indeks. Anda menetapkan opsi ini dengan membuat instance class QueryOptions ke parameter Query.options.

Misalnya, fragmen kode berikut meminta penelusuran untuk dokumen dengan first muncul dalam subjek dan good muncul di mana saja, menampilkan maksimal 20 dokumen, menampilkan satu kursor dokumen untuk hasil, dan mengurutkan berdasarkan subjek dalam urutan menurun, yang menampilkan kolom penulis, subjek, dan ringkasan, serta konten kolom yang diambil.

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'])))
...

Anda memiliki opsi untuk mengembalikan kursor pada setiap kumpulan hasil penelusuran. Kursor ini memungkinkan Anda membuka halaman hasil penelusuran dengan lebih mudah. Untuk mendapatkan Kursor, tentukan dalam QueryOptions.cursor dan ekstrak kursor untuk permintaan berikutnya dari SearchResults.cursor. Dengan demikian Anda dapat melanjutkan penelusuran dari dokumen yang terakhir ditemukan, seperti ditunjukkan di bawah ini:

...
results = index.search(
    search.Query(query_string='subject:first good',
          options=search.QueryOptions(cursor=results.cursor)))

Konstruktor

Konstruktor untuk class Query ditentukan sebagai berikut:

class Query(query_string, options=None, enable_facet_discovery=False, return_facets=None, facet_options=None, facet_refinements=None)

Meminta layanan penelusuran untuk mengkueri indeks, dengan menentukan parameter untuk kueri tersebut.

Argumen

query_string

Kueri yang akan dicocokkan dengan dokumen dalam indeks. Kueri adalah ekspresi boolean yang berisi istilah. Misalnya, kueri job tag:"very important" sent < 2011-02-28 menemukan dokumen dengan istilah job di kolom mana pun, dan juga berisi frasa very important di kolom tag, dan tanggal sent sebelum 28 Februari, 2011.

options

Pembuatan instance class QueryOptions dengan petunjuk untuk hasil penelusuran pascapemrosesan.

enable_facet_discovery

Memungkinkan penemuan faset paling relevan yang digunakan oleh dokumen yang memenuhi kueri penelusuran ini, lalu menampilkannya.

return_facets

Iterable dari FacetRequest atau basestring sebagai nama facet untuk menampilkan faset tertentu dengan hasilnya.

facet_options

FacetOption yang menjelaskan pemrosesan faset.

facet_refinements

Iterable objek FacetRefinement atau string token penajaman yang digunakan untuk memfilter hasil penelusuran berdasarkan nilai faset. Penajaman untuk facet yang berbeda akan dilakukan konjungsi, dan penajaman untuk faset yang sama akan menghasilkan disjungsi.

Nilai hasil

Instance baru dari class Query.

Pengecualian

TypeError

Dimunculkan saat query_string bukan string atau options bukan objek QueryOptions.

ValueError

Muncul saat query_string tidak dapat diuraikan.

Properti

Instance class Query memiliki properti berikut:

query_string

Menampilkan string kueri yang akan ditelusuri dalam permintaan ini.

options

Menampilkan QueryOptions yang menentukan pascapemrosesan hasil penelusuran.