Mengueri sebuah indeks - Amazon Kendra

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengueri sebuah indeks

Saat Anda mencari indeks Anda, Amazon Kendra gunakan semua informasi yang Anda berikan tentang dokumen Anda untuk menentukan dokumen yang paling relevan dengan istilah pencarian yang dimasukkan. Beberapa item yang Amazon Kendra dipertimbangkan adalah:

  • Teks atau badan dokumen.

  • Judul dokumen.

  • Bidang teks khusus yang telah Anda tandai sebagai dapat dicari.

  • Bidang tanggal yang telah Anda tunjukkan harus digunakan untuk menentukan “kesegaran” dokumen.

  • Bidang lain yang dapat memberikan informasi yang relevan.

Amazon Kendra juga dapat memfilter respons berdasarkan filter bidang/atribut apa pun yang mungkin telah Anda tetapkan untuk pencarian. Misalnya, jika Anda memiliki bidang khusus yang disebut “departemen”, Anda dapat memfilter respons untuk mengembalikan hanya dokumen dari departemen yang disebut “legal”. Untuk informasi selengkapnya, lihat Bidang atau atribut khusus.

Hasil pencarian yang dikembalikan diurutkan berdasarkan relevansi yang Amazon Kendra menentukan untuk setiap dokumen. Hasilnya dipaginasi sehingga Anda dapat menampilkan halaman pada satu waktu untuk pengguna Anda.

Untuk mencari dokumen yang telah Anda indeks Amazon Lex, gunakan Amazon Kendra AMAZON. KendraSearchIntent. Untuk contoh mengonfigurasi Amazon Kendra dengan Amazon Lex, lihat Membuat Bot FAQ untuk Indeks. Amazon Kendra

Contoh berikut menunjukkan cara mencari indeks. Amazon Kendra menentukan jenis hasil pencarian (jawaban, dokumen, pertanyaan-jawaban) yang paling cocok untuk kueri. Anda tidak dapat mengonfigurasi Amazon Kendra untuk mengembalikan jenis respons penelusuran tertentu (jawaban, dokumen, pertanyaan-jawaban) ke kueri.

Untuk informasi selengkapnya tentang respons kueri, lihat Respons kueri dan jenis respons.

Prasyarat

Sebelum menggunakan Query API untuk menanyakan indeks:

  • Siapkan izin yang diperlukan untuk indeks dan sambungkan ke sumber data atau unggah dokumen secara batch. Untuk informasi selengkapnya, lihat IAM peran. Anda menggunakan Nama Sumber Daya Amazon peran saat memanggil API untuk membuat konektor indeks dan sumber data atau unggahan dokumen secara batch.

  • Siapkan salah satu AWS Command Line Interface, SDK, atau pergi ke Amazon Kendra konsol. Untuk informasi selengkapnya, lihat Menyiapkan Amazon Kendra.

  • Buat indeks dan sambungkan ke sumber data dokumen atau dokumen unggahan batch. Untuk informasi selengkapnya, lihat Membuat indeks dan Membuat konektor sumber data.

Mencari indeks (konsol)

Anda dapat menggunakan Amazon Kendra konsol untuk mencari dan menguji indeks Anda. Anda bisa membuat kueri dan melihat hasilnya.

Untuk mencari indeks dengan konsol
  1. Masuk ke AWS Management Console dan buka Amazon Kendra konsol di http://console.aws.amazon.com/kendra/.

  2. Di panel navigasi, pilih Indeks.

  3. Pilih indeks Anda.

  4. Di menu navigasi, pilih opsi untuk mencari indeks Anda.

  5. Masukkan kueri di kotak teks dan kemudian tekan enter.

  6. Amazon Kendra mengembalikan hasil pencarian.

Anda juga bisa mendapatkan ID kueri untuk pencarian dengan memilih ikon bola lampu di panel samping.

Mencari indeks (SDK)

Untuk mencari indeks dengan Python atau Java
  • Contoh berikut mencari indeks. Mengubah nilai query ke kueri pencarian Anda dan index_id atau indexId untuk pengenal indeks dari indeks yang ingin Anda cari.

    Anda juga bisa mendapatkan ID kueri untuk pencarian sebagai bagian dari elemen respons saat Anda memanggil Query API.

    Python
    import boto3 import pprint kendra = boto3.client("kendra") # Provide the index ID index_id = "index-id" # Provide the query text query = "query text" response = kendra.query( QueryText = query, IndexId = index_id) print("\nSearch results for query: " + query + "\n") for query_result in response["ResultItems"]: print("-------------------") print("Type: " + str(query_result["Type"])) if query_result["Type"]=="ANSWER" or query_result["Type"]=="QUESTION_ANSWER": answer_text = query_result["DocumentExcerpt"]["Text"] print(answer_text) if query_result["Type"]=="DOCUMENT": if "DocumentTitle" in query_result: document_title = query_result["DocumentTitle"]["Text"] print("Title: " + document_title) document_text = query_result["DocumentExcerpt"]["Text"] print(document_text) print("------------------\n\n")
    Java
    package com.amazonaws.kendra; import software.amazon.awssdk.services.kendra.KendraClient; import software.amazon.awssdk.services.kendra.model.QueryRequest; import software.amazon.awssdk.services.kendra.model.QueryResponse; import software.amazon.awssdk.services.kendra.model.QueryResultItem; public class SearchIndexExample { public static void main(String[] args) { KendraClient kendra = KendraClient.builder().build(); String query = "query text"; String indexId = "index-id"; QueryRequest queryRequest = QueryRequest .builder() .queryText(query) .indexId(indexId) .build(); QueryResponse queryResponse = kendra.query(queryRequest); System.out.println(String.format("\nSearch results for query: %s", query)); for(QueryResultItem item: queryResponse.resultItems()) { System.out.println("----------------------"); System.out.println(String.format("Type: %s", item.type())); switch(item.type()) { case QUESTION_ANSWER: case ANSWER: String answerText = item.documentExcerpt().text(); System.out.println(answerText); break; case DOCUMENT: String documentTitle = item.documentTitle().text(); System.out.println(String.format("Title: %s", documentTitle)); String documentExcerpt = item.documentExcerpt().text(); System.out.println(String.format("Excerpt: %s", documentExcerpt)); break; default: System.out.println(String.format("Unknown query result type: %s", item.type())); } System.out.println("-----------------------\n"); } } }

Mencari indeks (Postman)

Anda dapat menggunakan Postman untuk menanyakan dan menguji Amazon Kendra indeks Anda.

Untuk mencari indeks menggunakan Postman
  1. Buat koleksi baru di Postman dan atur jenis permintaan ke POST.

  2. Masukkan URL titik akhir. Misalnya, https://kendra. .amazonaws.com. <region>

  3. Pilih tab Otorisasi dan masukkan informasi berikut.

    • Ketik —Pilih AWS tanda tangan.

    • AccessKey—Masukkan kunci akses yang dihasilkan saat Anda membuat IAM pengguna.

    • SecretKey—Masukkan kunci rahasia yang dihasilkan saat Anda membuat IAM pengguna.

    • AWS Wilayah —Masukkan wilayah indeks Anda. Misalnya, us-west-2.

    • Nama Layanan —Masukkan kendra. Ini peka huruf besar/kecil, jadi harus huruf kecil.

      Awas

      Jika Anda memasukkan nama layanan yang salah atau tidak menggunakan huruf kecil, kesalahan akan muncul setelah Anda memilih Kirim untuk mengirim permintaan: “Kredenal harus dicakup ke layanan 'kendra' yang benar.”

      Anda juga harus memeriksa apakah Anda memasukkan kunci akses dan kunci rahasia yang benar.

  4. Pilih tab Header dan masukkan informasi kunci dan nilai berikut.

    • Kunci: X-Amz-Target

      Nilai: com.amazonaws.kendra. AWSKendraFrontendService.Permintaan

    • Kunci: Pengkodean Konten

      Nilai: amz-1.0

  5. Pilih tab Body dan lakukan hal berikut.

    • Pilih tipe JSON mentah untuk isi permintaan.

    • Masukkan JSON yang menyertakan ID indeks dan teks kueri Anda.

      { "IndexId": "index-id", "QueryText": "enter a query here" }
      Awas

      Jika JSON Anda tidak menggunakan indendasi yang benar, kesalahan akan muncul: "”. SerializationException Periksa indendasi di JSON Anda.

  6. Pilih Kirim (dekat kanan atas).

Mencari dengan sintaks kueri tingkat lanjut

Anda dapat membuat kueri yang lebih spesifik daripada kata kunci sederhana atau kueri bahasa alami dengan menggunakan sintaks kueri lanjutan atau operator. Ini termasuk rentang, Boolean, wildcard, dan banyak lagi. Dengan menggunakan operator, Anda dapat memberikan kueri Anda lebih banyak konteks dan lebih menyempurnakan hasil pencarian.

Amazon Kendra mendukung operator berikut.

  • Boolean: Logika untuk membatasi atau memperluas pencarian. Misalnya, amazon AND sports batasi pencarian hanya untuk mencari dokumen yang berisi kedua istilah tersebut.

  • Tanda kurung: Membaca istilah kueri bersarang dalam urutan prioritas. Misalnya, (amazon AND sports) NOT rainforest membaca (amazon AND sports) sebelumnyaNOT rainforest.

  • Rentang: Tanggal atau nilai rentang numerik. Rentang bisa inklusif, eksklusif, atau tidak terbatas. Misalnya, Anda dapat mencari dokumen yang terakhir diperbarui antara 1 Januari 2020 dan 31 Desember 2020, termasuk tanggal-tanggal tersebut.

  • Bidang: Menggunakan bidang tertentu untuk membatasi pencarian. Misalnya, Anda dapat mencari dokumen yang memiliki 'Amerika Serikat' di bidang 'lokasi'.

  • Wildcard: Sebagian cocok dengan string teks. Misalnya, Cloud* bisa cocok CloudFormation. Amazon Kendra saat ini hanya mendukung wildcard trailing.

  • Kutipan yang tepat: Cocokkan dengan string teks. Misalnya, dokumen yang berisi"Amazon Kendra" "pricing".

Anda dapat menggunakan kombinasi dari salah satu operator di atas.

Perhatikan bahwa penggunaan operator yang berlebihan atau kueri yang sangat kompleks dapat memengaruhi latensi kueri. Wildcard adalah beberapa operator paling mahal dalam hal latensi. Aturan umum adalah semakin banyak istilah dan operator yang Anda gunakan, semakin besar potensi dampak pada latensi. Faktor lain yang memengaruhi latensi termasuk ukuran rata-rata dokumen yang diindeks, ukuran indeks Anda, pemfilteran apa pun pada hasil penelusuran, dan beban keseluruhan pada indeks Anda. Amazon Kendra

Boolean

Anda dapat menggabungkan atau mengecualikan kata-kata menggunakan operator BooleanAND,OR,NOT.

Berikut ini adalah contoh menggunakan operator Boolean.

amazon AND sports

Mengembalikan hasil pencarian yang berisi istilah 'amazon' dan 'olahraga' dalam teks, seperti olahraga video Amazon Prime atau konten serupa lainnya.

sports OR recreation

Mengembalikan hasil pencarian yang berisi istilah 'olahraga' atau 'rekreasi', atau keduanya, dalam teks.

amazon NOT rainforest

Mengembalikan hasil pencarian yang berisi istilah 'amazon' tetapi bukan istilah 'hutan hujan' dalam teks. Ini untuk mencari dokumen tentang perusahaan Amazon, bukan Hutan Hujan Amazon.

Tanda kurung

Anda dapat menanyakan kata-kata bersarang dalam urutan prioritas dengan menggunakan tanda kurung. Tanda kurung menunjukkan Amazon Kendra bagaimana kueri harus dibaca.

Berikut ini adalah contoh penggunaan operator kurung.

(amazon AND sports) NOT rainforest

Mengembalikan dokumen yang berisi istilah 'amazon' dan 'olahraga' dalam teks, tetapi bukan istilah 'hutan hujan'. Ini untuk mencari olahraga video Amazon Prime atau konten serupa lainnya, bukan olahraga petualangan di Hutan Hujan Amazon. Tanda kurung membantu menunjukkan bahwa amazon AND sports harus dibaca sebelumnya. NOT rainforest Kueri tidak boleh dibaca sebagaiamazon AND (sports NOT rainforest).

(amazon AND (sports OR recreation)) NOT rainforest

Mengembalikan dokumen yang berisi istilah 'olahraga' atau 'rekreasi', atau keduanya, dan istilah 'amazon'. Tapi itu tidak termasuk istilah 'hutan hujan'. Ini untuk mencari olahraga atau rekreasi video Amazon Prime, bukan olahraga petualangan di Hutan Hujan Amazon. Tanda kurung membantu menunjukkan bahwa sports OR recreation harus dibaca sebelum menggabungkan dengan 'amazon', yang dibaca sebelumnya. NOT rainforest Kueri tidak boleh dibaca sebagaiamazon AND (sports OR (recreation NOT rainforest)).

Rentang

Anda dapat menggunakan berbagai nilai untuk memfilter hasil pencarian. Anda menentukan atribut dan nilai rentang. Ini bisa berupa tanggal atau tipe numerik.

Rentang tanggal harus dalam format berikut:

  • Zaman

  • YYYY

  • YYYY-mm

  • YYYY-MM-DD

  • YYYY-MM-DD't'hh

Anda juga dapat menentukan apakah akan menyertakan atau mengecualikan nilai rentang yang lebih rendah dan lebih tinggi.

Berikut ini adalah contoh penggunaan operator jangkauan.

_processed_date:>2019-12-31 AND _processed_date:<2021-01-01

Mengembalikan dokumen yang diproses pada 2020 — lebih dari 31 Desember 2019 dan kurang dari 1 Januari 2021.

_processed_date:>=2020-01-01 AND _processed_date:<=2020-12-31

Mengembalikan dokumen yang diproses pada 2020 — lebih besar dari atau sama dengan 1 Januari 2020 dan kurang dari atau sama dengan 31 Desember 2020.

_document_likes:<1

Mengembalikan dokumen dengan nol suka atau tidak ada umpan balik pengguna—kurang dari 1 suka.

Anda dapat menentukan apakah rentang harus diperlakukan sebagai inklusif atau eksklusif dari nilai rentang yang diberikan.

Inklusif

_last_updated_at:[2020-01-01 TO 2020-12-31]

Dokumen pengembalian terakhir diperbarui pada 2020 — termasuk hari-hari 1 Desember 2020 dan 31 Desember 2020.

Eksklusif

_last_updated_at:{2019-12-31 TO 2021-01-01}

Mengembalikan dokumen terakhir diperbarui pada tahun 2020—tidak termasuk hari-hari 31 Desember 2019 dan 1 Januari 2021.

< and >Untuk rentang tak terbatas yang tidak inklusif atau eksklusif, cukup gunakan operator. Misalnya, _last_updated_at:>2019-12-31 AND _last_updated_at:<2021-01-01

Bidang

Anda dapat membatasi pencarian Anda hanya untuk mengembalikan dokumen yang memenuhi nilai di bidang tertentu. Bidang bisa dari jenis apa saja.

Berikut ini adalah contoh penggunaan operator konteks tingkat lapangan.

status:"Incomplete" AND financial_year:2021

Mengembalikan dokumen untuk tahun buku 2021 dengan statusnya sebagai tidak lengkap.

(sports OR recreation) AND country:"United States" AND level:"professional"

Mengembalikan dokumen yang membahas olahraga profesional atau rekreasi di Amerika Serikat.

Wildcard

Anda dapat memperluas pencarian Anda untuk memperhitungkan varian kata dan frasa menggunakan operator wildcard. Ini berguna saat mencari varian nama. Amazon Kendra saat ini hanya mendukung wildcard trailing. Jumlah karakter awalan untuk wildcard trailing harus lebih besar dari dua.

Berikut ini adalah contoh penggunaan operator wildcard.

Cloud*

Mengembalikan dokumen yang berisi varian seperti CloudFormation dan CloudWatch.

kendra*aws

Mengembalikan dokumen yang berisi varian seperti kendra.amazonaws.

kendra*aws*

Mengembalikan dokumen yang berisi varian seperti kendra.amazonaws.com

Kutipan yang tepat

Anda dapat menggunakan tanda kutip untuk mencari kecocokan persis dari sepotong teks.

Berikut ini adalah contoh penggunaan tanda kutip.

"Amazon Kendra" "pricing"

Mengembalikan dokumen yang berisi frasa 'Amazon Kendra' dan istilah 'harga'. Dokumen harus berisi Amazon Kendra'' dan 'harga' untuk mengembalikan hasil.

"Amazon Kendra" "pricing" cost

Mengembalikan dokumen yang berisi frasa 'Amazon Kendra' dan istilah 'harga', dan opsional istilah 'biaya'. Dokumen harus berisi 'Amazon Kendra' dan 'harga' untuk mengembalikan hasil, tetapi mungkin tidak termasuk 'biaya'.

Sintaks kueri tidak valid

Amazon Kendra mengeluarkan peringatan jika ada masalah dengan sintaks kueri Anda atau kueri Anda saat ini tidak didukung oleh Amazon Kendra. Untuk informasi selengkapnya, lihat dokumentasi API untuk peringatan kueri.

Kueri berikut adalah contoh sintaks kueri yang tidak valid.

_last_updated_at:<2021-12-32

Tanggal tidak valid. Hari ke-32 tidak ada dalam kalender Gregorian, yang digunakan oleh. Amazon Kendra

_view_count:ten

Nilai numerik tidak valid. Digit harus digunakan untuk mewakili nilai numerik.

nonExistentField:123

Pencarian bidang tidak valid. Bidang harus ada untuk menggunakan pencarian lapangan.

Product:[A TO D]

Rentang tidak valid. Nilai numerik atau tanggal harus digunakan untuk rentang.

OR Hello

Boolean tidak valid. Operator harus digunakan dengan persyaratan dan ditempatkan di antara persyaratan.

Mencari dalam bahasa

Anda dapat mencari dokumen dalam bahasa yang didukung. Anda meneruskan kode bahasa AttributeFilteruntuk mengembalikan dokumen yang difilter dalam bahasa pilihan Anda. Anda dapat mengetik kueri dalam bahasa yang didukung.

Jika Anda tidak menentukan bahasa, Amazon Kendra kueri dokumen dalam bahasa Inggris secara default. Untuk informasi selengkapnya tentang bahasa yang didukung, termasuk kodenya, lihat Menambahkan dokumen dalam bahasa selain bahasa Inggris.

Untuk mencari dokumen dalam bahasa yang didukung di konsol, pilih indeks Anda, lalu pilih opsi untuk mencari indeks Anda dari menu navigasi. Pilih bahasa yang ingin Anda kembalikan dokumen dengan memilih pengaturan pencarian dan kemudian memilih bahasa dari Bahasa dropdown.

Contoh berikut menunjukkan cara mencari dokumen dalam bahasa Spanyol.

Untuk mencari indeks dalam bahasa Spanyol di konsol
  1. Masuk ke AWS Management Console dan buka Amazon Kendra konsol di http://console.aws.amazon.com/kendra/.

  2. Di menu navigasi, pilih Indeks dan pilih indeks Anda.

  3. Di menu navigasi, pilih opsi untuk mencari indeks Anda.

  4. Di pengaturan pencarian, pilih dropdown Bahasa dan pilih Spanyol.

  5. Masukkan kueri ke dalam kotak teks dan kemudian tekan enter.

  6. Amazon Kendra mengembalikan hasil pencarian dalam bahasa Spanyol.

Untuk mencari indeks dalam bahasa Spanyol menggunakan CLI, Python atau Java
  • Contoh berikut mencari indeks dalam bahasa Spanyol. Ubah nilai searchString ke kueri penelusuran Anda dan nilai indexID ke pengenal indeks yang ingin Anda cari. Kode bahasa untuk bahasa Spanyol adalahes. Anda dapat menggantinya dengan kode bahasa Anda sendiri.

    CLI
    { "EqualsTo":{ "Key": "_language_code", "Value": { "StringValue": "es" } } }
    Python
    import boto3 import pprint kendra = boto3.client("kendra") # Provide the index ID index_id = "index-id" # Provide the query text query = "search-string" # Includes the index ID, query text, and language attribute filter response = kendra.query( QueryText = query, IndexId = index_id, AttributeFilter = { "EqualsTo": { "Key": "_language_code", "Value": { "StringValue": "es" } } }) print ("\nSearch results|Resultados de la búsqueda: " + query + "\n") for query_result in response["ResultItems"]: print("-------------------") print("Type: " + str(query_result["Type"])) if query_result["Type"]=="ANSWER" or query_result["Type"]=="QUESTION_ANSWER": answer_text = query_result["DocumentExcerpt"]["Text"] print(answer_text) if query_result["Type"]=="DOCUMENT": if "DocumentTitle" in query_result: document_title = query_result["DocumentTitle"]["Text"] print("Title: " + document_title) document_text = query_result["DocumentExcerpt"]["Text"] print(document_text) print("------------------\n\n")
    Java
    package com.amazonaws.kendra; import software.amazon.awssdk.services.kendra.KendraClient; import software.amazon.awssdk.services.kendra.model.QueryRequest; import software.amazon.awssdk.services.kendra.model.QueryResponse; import software.amazon.awssdk.services.kendra.model.QueryResultItem; public class SearchIndexExample { public static void main(String[] args) { KendraClient kendra = KendraClient.builder().build(); String query = "searchString"; String indexId = "indexID"; QueryRequest queryRequest = QueryRequest.builder() .queryText(query) .indexId(indexId) .attributeFilter( AttributeFilter.builder() .withEqualsTo( DocumentAttribute.builder() .withKey("_language_code") .withValue("es") .build()) .build()) .build(); QueryResponse queryResponse = kendra.query(queryRequest); System.out.println(String.format("\nSearch results| Resultados de la búsqueda: %s", query)); for(QueryResultItem item: queryResponse.resultItems()) { System.out.println("----------------------"); System.out.println(String.format("Type: %s", item.type())); switch(item.type()) { case QUESTION_ANSWER: case ANSWER: String answerText = item.documentExcerpt().text(); System.out.println(answerText); break; case DOCUMENT: String documentTitle = item.documentTitle().text(); System.out.println(String.format("Title: %s", documentTitle)); String documentExcerpt = item.documentExcerpt().text(); System.out.println(String.format("Excerpt: %s", documentExcerpt)); break; default: System.out.println(String.format("Unknown query result type: %s", item.type())); } System.out.println("-----------------------\n"); } } }