Class Index
mewakili indeks yang memungkinkan dokumen diindeks, dihapus, dan ditelusuri.
Index
ditentukan dalam modul google.appengine.api.search
.
Pengantar
Class Index
menyediakan argumen untuk membuat indeks serta fungsi yang memungkinkan Anda menambahkan, membuat daftar, menelusuri, dan menghapus dokumen (atau koleksi dokumen yang dapat diiterasi) di dalam indeks. Anda membuat indeks menggunakan argumen ke class Index
, termasuk nama dan namespace indeks tersebut.
Kode berikut menunjukkan cara memasukkan dokumen ke dalam indeks, lalu menelusurinya untuk menemukan dokumen yang cocok dengan kueri:
# Get the index. index = search.Index(name='index-name') # Create a document. doc = search.Document( doc_id='document-id', fields=[search.TextField(name='subject', value='my first email'), search.HtmlField(name='body', value='<html>some content here</html>')]) # Index the document. try: index.put(doc) except search.PutError, e: result = e.results[0] if result.code == search.OperationResult.TRANSIENT_ERROR: # possibly retry indexing result.object_id except search.Error, e: # possibly log the failure # Query the index. try: results = index.search('subject:first body:here') # Iterate through the search results. for scored_document in results: # process the scored_document except search.Error, e: # possibly log the failure
Konstruktor
Konstruktor untuk class Index
ditentukan sebagai berikut:
-
Index(name, namespace=None)
Buat instance class
Index
.-
Argumen
- name
Nama indeks (lihat properti nama di bawah untuk mengetahui detailnya).
- namespace
Untuk aplikasi multitenant, namespace tempat nama indeks ditentukan.
Nilai hasil
Instance baru dari class
Index
.
Properti
Instance class Index
memiliki properti berikut:
- schema
Nama kolom pemetaan skema ke daftar jenis yang didukung. Hanya berlaku untuk indeks yang ditampilkan oleh metode
search.get_indexes
.- name
Nama indeks, string ASCII yang dapat dibaca manusia yang mengidentifikasi indeks. Tidak boleh berisi karakter spasi kosong dan tidak boleh diawali dengan tanda seru (
!
).- namespace
Namespace tempat nama indeks ditentukan.
- storage_usage
Perkiraan jumlah byte yang digunakan oleh indeks ini. Jumlah tersebut mungkin tidak mencerminkan hasil perubahan terbaru. Hanya berlaku untuk indeks yang ditampilkan oleh metode
search.get_indexes
.- storage_limit
Penyimpanan maksimum yang diizinkan untuk indeks ini, dalam satuan byte. Hanya berlaku untuk indeks yang ditampilkan oleh metode
search.get_indexes
.
Metode Instance
Instance class Index
memiliki metode berikut:
- put(self, documents, deadline=None)
-
Jika dokumen yang ditentukan telah dimasukkan ke dalam indeks, dan jika memiliki
doc_ids
yang sama, dokumen tersebut akan diindeks ulang dengan konten yang diperbarui. -
Argumen
- documents
Dokumen (atau koleksi dokumen yang dapat diiterasi) untuk diindeks.
- deadline
Tenggat waktu panggilan RPC dalam detik.
Nilai hasil
Daftar hasil (
PutResult
), satu untuk setiap dokumen yang diminta untuk diindeks.
Pengecualian
- PutError
Satu atau beberapa dokumen gagal diindeks, atau nomor yang diindeks tidak cocok dengan jumlah yang diminta.
- TypeError
Atribut tidak dikenal lulus.
- ValueError
Argumen bukan dokumen atau koleksi dokumen yang dapat diiterasi, atau jumlah dokumen yang lebih besar dari
MAXIMUM_DOCUMENTS_PER_PUT_REQUEST
.
- delete(self, document_ids, deadline=None)
-
Hapus dokumen dari indeks.
Jika tidak ada dokumen untuk ID dalam daftar, ID tersebut akan diabaikan.
-
Argumen
- document_ids
ID (atau daftar ID) dokumen yang akan dihapus.
- deadline
Tenggat waktu panggilan RPC dalam detik.
Pengecualian
- DeleteError
Satu atau beberapa dokumen gagal dihapus, atau jumlah yang dihapus tidak cocok dengan jumlah yang diminta.
- ValueError
Argumen bukan string atau kumpulan ID dokumen yang valid yang dapat diiterasi, atau jumlah ID dokumen yang lebih besar dari
MAXIMUM_DOCUMENTS_PER_PUT_REQUEST
.
- get(self,doc_id, deadline=None)
-
Mengambil Dokumen dari indeks menggunakan ID dokumen. Jika dokumen tidak ditemukan,
None
akan ditampilkan. -
Argumen
- doc_id
-
ID dokumen yang akan diambil.
- deadline
Tenggat waktu panggilan RPC dalam detik.
Nilai hasil
Objek Dokumen dengan ID yang cocok dengan ID yang disediakan oleh doc_id.
- search(query, deadline=None)
Menelusuri indeks untuk menemukan dokumen yang cocok dengan kueri. Kueri dapat berupa string atau objek Kueri.
Misalnya, fragmen kode berikut meminta penelusuran untuk dokumen dengan 'first' muncul dalam subjek dan 'good' terjadi di mana saja, menampilkan maksimal 20 dokumen, memulai penelusuran dari 'cursor token', mengembalikan satu kursor lain untuk respons, mengurutkan berdasarkan subjek dalam urutan menurun, yang menampilkan kolom penulis, subjek, dan ringkasan, serta konten kolom yang dipotong.
results = index.search( # Define the query by using a Query object. query=Query('subject:first good', options=QueryOptions(limit=20, cursor=Cursor(), sort_options=SortOptions( expressions=[SortExpression(expression='subject', default_value='')], limit=1000), returned_fields=['author', 'subject', 'summary'], snippeted_fields=['content'])))
Fragmen kode berikut menunjukkan cara menggunakan kursor hasil.
cursor = results.cursor for result in results: # process result results = index.search(Query('subject:first good', options=QueryOptions(cursor=cursor)) )
Fragmen kode berikut menunjukkan cara menggunakan kursor
per_result
:results = index.search(query=Query('subject:first good', options=QueryOptions(limit=20, cursor=Cursor(per_result=True), ...)) ) cursor = None for result in results: cursor = result.cursor results = index.search( Query('subject:first good', options=QueryOptions(cursor=cursor)) )
-
Argumen
- query
-
Kueri yang akan dicocokkan dengan dokumen dalam indeks, yang dijelaskan dalam objek Kueri. Untuk informasi selengkapnya, lihat Ringkasan Bahasa Kueri.
- deadline
Tenggat waktu panggilan RPC dalam detik.
Nilai hasil
Objek SearchResults yang berisi daftar dokumen yang cocok, jumlah yang ditampilkan, dan angka yang cocok dengan kueri.
Pengecualian
- TypeError
Parameter memiliki jenis yang tidak valid, atau atribut yang tidak diketahui telah diteruskan.
- ValueError
Parameter memiliki nilai yang tidak valid.
- get_range(self, start_id=None, include_start_object=True, limit=100, ids_only=False, deadline=None)
-
Mendapatkan berbagai dokumen dari indeks, dalam urutan
doc_id
. -
Argumen
- start_id
String yang berisi ID dokumen yang digunakan untuk mencantumkan dokumen. Secara default, dimulai pada ID dokumen pertama.
- include_start_object
Jika
true
, sertakan dokumen yang ditentukan olehstart_id
.- limit
Jumlah dokumen maksimum yang akan ditampilkan.
- ids_only
Jika
true
, hanya menampilkan ID dokumen, bukan dokumen lengkap.- deadline
Tenggat waktu panggilan RPC dalam detik.
Nilai hasil
Objek
A GetResponse
yang berisi daftar dokumen yang diambil, yang diurutkan berdasarkan ID dokumen.
Pengecualian
- TypeError
Atribut tidak dikenal lulus.
- Error
Beberapa subclass
Error
terjadi saat memproses permintaan.