Dokumen Pencarian (Pratinjau REST API)
Berlaku untuk: 2023-07-01-Preview. Versi ini tidak lagi didukung. Tingkatkan segera ke versi yang lebih baru.
Penting
Pratinjau 07-07-2023 menambahkan:
- "vektor" parameter kueri yang menentukan permintaan kueri vektor apa pun. Setiap objek harus berisi representasi vektor kueri, jumlah "k" tetangga terdekat untuk dikembalikan dalam hasil, dan bidang vektor yang akan digunakan selama eksekusi kueri.
Pratinjau 04-30 2021 menambahkan:
- "semanticConfiguration" mendukung pencakupan peringkat semantik ke bidang tertentu.
- "keterangan" mengembalikan frasa yang diekstrak dari bagian kunci dalam dokumen berperingkat semantik tertinggi.
Pratinjau 06-06-2020 menambahkan:
- "queryType=semantic" mendukung reranking dan respons semantik.
- "searchFields" dalam kueri semantik menetapkan urutan prioritas bidang yang digunakan untuk merumuskan keterangan dan jawaban. Pendekatan ini digantikan oleh "semanticConfiguration" pada 2021-04-30-Preview dan sekarang usang.
- "ejaan" memungkinkan koreksi ejaan pada input kueri.
- "queryLanguage" diperlukan untuk "queryType=semantic" dan "speller".
- "featuresMode" membongkar skor pencarian, melaporkan frekuensi istilah per bidang, skor kesamaan per bidang, dan jumlah kecocokan unik per bidang.
Permintaan kueri menargetkan kumpulan dokumen dari satu indeks pada layanan pencarian. Ini termasuk parameter yang menentukan kriteria kecocokan, dan parameter yang membentuk respons. Anda juga dapat menggunakan alias indeks untuk menargetkan indeks tertentu alih-alih menggunakan nama indeks itu sendiri.
Anda dapat menggunakan GET atau POST untuk sebagian besar kueri, tetapi Anda harus menggunakan POST untuk pencarian vektor karena parameter kueri vektor tidak cocok dalam URI. Parameter kueri ditentukan pada string kueri untuk permintaan GET, dan di isi permintaan untuk permintaan POST.
GET https://[service name].search.windows.net/indexes/[index name]/docs?[query parameters]
Content-Type: application/json
api-key: [admin or query key]
Jika Anda menggunakan POST, tambahkan tindakan "pencarian" sebagai parameter URI.
POST https://[service name].search.windows.net/indexes/[index name]/docs/search?api-version=[api-version]
Content-Type: application/json
api-key: [admin or query key]
Ketika dipanggil dengan GET, panjang URL permintaan tidak boleh melebihi 8 KB. Panjang ini cukup untuk sebagian besar aplikasi. Namun, beberapa aplikasi menghasilkan kueri besar, khususnya ketika ekspresi filter OData digunakan. Untuk aplikasi ini, HTTP POST adalah pilihan yang lebih baik karena memungkinkan filter yang lebih besar daripada GET.
Dengan POST, jumlah klausul dalam filter adalah faktor pembatasan, bukan ukuran string filter mentah karena batas ukuran permintaan untuk POST adalah sekitar 16 MB. Meskipun batas ukuran permintaan POST besar, ekspresi filter tidak boleh begitu kompleks. Untuk informasi selengkapnya tentang batasan kompleksitas filter, lihat Sintaks Ekspresi OData untuk Azure AI Search.
Parameter URI
Rekomendasi pengodean URL
Ingatlah untuk url-encode parameter kueri tertentu saat memanggil GET REST API secara langsung. Untuk operasi Dokumen Pencarian
- mencari
- $filter
- Segi
- highlightPreTag
- highlightPostTag
Pengodean URL hanya direkomendasikan untuk parameter individual. Jika Anda secara tidak sengaja mengodekan URL seluruh string kueri (semuanya setelah ?
), permintaan akan rusak.
Selain itu, pengodean URL hanya diperlukan saat memanggil REST API secara langsung menggunakan GET. Tidak ada pengodean URL yang diperlukan saat menggunakan POST, atau saat menggunakan pustaka klien Azure AI Search .NET , yang menangani pengodean untuk Anda.
Header Permintaan
Tabel berikut ini menjelaskan header permintaan yang diperlukan dan opsional.
Bidang | Deskripsi |
---|---|
Tipe Isi | Diperlukan. Atur nilai ini ke "application/json" |
api-key | Opsional jika Anda menggunakan peran Azure dan token pembawa disediakan berdasarkan permintaan, jika tidak, kunci diperlukan. Kunci api adalah string unik yang dihasilkan sistem yang mengautentikasi permintaan ke layanan pencarian Anda. Permintaan kueri terhadap koleksi dokumen dapat menentukan kunci admin atau kunci kueri sebagai kunci API. Kunci kueri digunakan untuk operasi baca-saja terhadap kumpulan dokumen. Lihat Sambungkan ke Azure AI Search menggunakan autentikasi utama untuk detailnya. |
Isi Permintaan
Untuk GET: None.
Untuk POST:
{
"answers": "none" (default) | "extractive",
"count": true | false (default),
"captions": "none" (default) | "extractive",
"facets": [ "facet_expression_1", "facet_expression_2", ... ],
"featuresMode" : "disabled" (default) | "enabled",
"filter": "odata_filter_expression",
"highlight": "highlight_field_1, highlight_field_2, ...",
"highlightPreTag": "pre_tag",
"highlightPostTag": "post_tag",
"minimumCoverage": # (% of index that must be covered to declare query successful; default 100),
"orderby": "orderby_expression",
"queryLanguage": "en-us" (default) | (a supported language code),
"queryType": "simple" (default) | "full" | "semantic",
"scoringParameters": [ "scoring_parameter_1", "scoring_parameter_2", ... ],
"scoringProfile": "scoring_profile_name",
"scoringStatistics" : "local" (default) | "global",
"search": "simple_query_expression",
"searchFields": "field_name_1, field_name_2, ...",
"searchMode": "any" (default) | "all",
"select": "field_name_1, field_name_2, ...",
"semanticConfiguration": "semantic_configuration_name",
"sessionId" : "session_id",
"skip": # (default 0),
"speller": "none" (default) | "lexicon",
"top": #,
"vectors": [
{
"value": "a vector representation of the query",
"k": an integer (number of nearest neighbors to return as top results),
"fields": "a comma-delimited list of vector fields to use in the query"
}
]
}
Kelanjutan Respons Pencarian Parsial
Terkadang Pencarian Azure AI tidak dapat mengembalikan semua hasil yang diminta dalam satu respons Pencarian. Respons parsial dapat terjadi karena alasan yang berbeda, seperti ketika kueri mengembalikan terlalu banyak dokumen dengan tidak menentukan $top, atau dengan menentukan nilai untuk $ top yang terlalu besar. Dalam kasus seperti itu, Azure AI Search menyertakan anotasi @odata.nextLink dalam isi respons, dan juga @search.nextPageParameters jika itu adalah permintaan POST. Anda dapat menggunakan nilai anotasi ini untuk merumuskan permintaan Pencarian lain untuk mendapatkan bagian berikutnya dari respons pencarian. Perilaku ini disebut kelanjutan
Alasan mengapa Azure AI Search mungkin mengembalikan token kelanjutan khusus implementasi dan dapat berubah. Klien yang kuat harus selalu siap untuk menangani kasus di mana lebih sedikit dokumen dari yang diharapkan dikembalikan dan token kelanjutan disertakan untuk terus mengambil dokumen. Perhatikan juga bahwa Anda harus menggunakan metode HTTP yang sama dengan permintaan asli untuk melanjutkan. Misalnya, jika Anda mengirim permintaan GET, setiap permintaan kelanjutan yang Anda kirim juga harus menggunakan GET (dan demikian juga untuk POST).
Nota
Tujuan @odata.nextLink dan @search.nextPageParameters adalah untuk melindungi layanan dari kueri yang meminta terlalu banyak hasil, bukan untuk menyediakan mekanisme umum untuk penomoran halaman. Jika Anda ingin halaman melalui hasil, gunakan $top dan $skip bersama-sama. Misalnya, jika Anda menginginkan halaman berukuran 10, permintaan pertama Anda harus memiliki $top=10 dan $skip=0, permintaan kedua harus memiliki $top=10 dan $skip=10, permintaan ketiga harus memiliki $top=10 dan $skip=20, dan sebagainya.
Parameter Kueri
Kueri menerima beberapa parameter pada URL saat dipanggil dengan GET, dan sebagai properti JSON di isi permintaan saat dipanggil dengan POST. Sintaks untuk beberapa parameter sedikit berbeda antara GET dan POST. Perbedaan ini dicatat dalam tabel berikut.
Nama | Jenis | Deskripsi |
---|---|---|
jawaban (pratinjau) | tali | Fakultatif. Nilai yang valid adalah "none" dan "extractive". Default ke "tidak ada". Parameter ini hanya valid jika jenis kueri adalah "semantik". Saat diatur ke "ekstraktif", kueri merumuskan dan mengembalikan jawaban dari bagian kunci dalam dokumen dengan peringkat semantik tertinggi. Defaultnya adalah satu jawaban, tetapi Anda dapat menentukan hingga 10 dengan menambahkan hitungan. Misalnya, "jawaban": "extractive|count-3" mengembalikan tiga jawaban. Agar jawaban dikembalikan, harus ada konten verbatim di bidang yang ditargetkan yang terlihat seperti jawaban. Model bahasa yang digunakan untuk jawaban dilatih untuk mengenali jawaban, bukan menghasilkannya. Selain itu, kueri itu sendiri harus terlihat seperti pertanyaan. |
versi api | tali | Diperlukan. Versi REST API yang digunakan untuk permintaan. Untuk daftar versi yang didukung, lihat versi API . Untuk operasi ini, versi api ditentukan sebagai parameter URI terlepas dari apakah Anda memanggil Dokumen Pencarian dengan GET atau POST. |
keterangan (pratinjau) | tali | Fakultatif. Nilai yang valid adalah "none" dan "extractive". Default ke "tidak ada". Parameter ini hanya valid jika jenis kueri adalah "semantik". Saat diatur ke "ekstraktif", kueri mengembalikan keterangan yang diekstrak dari bagian kunci dalam dokumen berperingkat tertinggi. Ketika keterangan diatur ke 'ekstraktif', penyorotan diaktifkan secara default, dan dapat dikonfigurasi dengan menambahkan karakter pipa '|' diikuti dengan opsi 'highlight-<true/false>', seperti 'extractive|highlight-true'. |
$count | Boolean | Fakultatif. Nilai yang valid adalah "true" atau "false". Default ke "false". Ketika dipanggil dengan POST, parameter ini diberi nama hitungan alih-alih $count. Menentukan apakah akan mengambil jumlah total hasil. Nilai ini adalah jumlah semua dokumen yang cocok dengan parameter pencarian dan $filter, mengabaikan $top dan $skip. Mengatur nilai ini ke "true" dapat menurunkan performa. Hitungan akurat jika indeks stabil, tetapi akan di bawah atau berlebihan melaporkan dokumen apa pun yang ditambahkan, diperbarui, atau dihapus secara aktif. Jika Anda hanya ingin mendapatkan hitungan tanpa dokumen apa pun, Anda dapat menggunakan $top=0. |
faset atau faset | tali | Fakultatif. Bidang yang akan difasetkan oleh, di mana bidang dikaitkan sebagai "faset". Ketika dipanggil dengan GET, facet adalah bidang (facet: field1 ). Ketika dipanggil dengan POST, parameter ini dinamai facets alih-alih facet dan ditentukan sebagai array (facets: [field1, field2, field3] ). String mungkin berisi parameter untuk menyesuaikan faset, yang dinyatakan sebagai pasangan nilai nama yang dipisahkan koma.
Nilai valid adalah "count", "sort", "values", "interval", dan "timeoffset". "hitungan" adalah jumlah maksimum istilah faset; defaultnya adalah 10. Tidak ada batas atas jumlah istilah, tetapi nilai yang lebih tinggi menurunkan performa, terutama jika bidang tersaring berisi sejumlah besar istilah unik. Misalnya, "facet=category,count:5" mendapatkan lima kategori teratas dalam hasil faset. Jika parameter hitungan kurang dari jumlah istilah unik, hasilnya mungkin tidak akurat. Hal ini disebabkan oleh cara kueri faset didistribusikan di seluruh pecahan. Untuk mendapatkan jumlah yang akurat di semua pecahan, Anda dapat mengatur hitungan ke nol atau ke nilai yang lebih besar dari atau sama dengan jumlah nilai unik di bidang faset. Tradeoff adalah latensi yang ditingkatkan. "sort" dapat diatur ke "count", "-count", "value", "-value". Gunakan hitungan untuk mengurutkan turun menurut hitungan. Gunakan -count untuk mengurutkan naik menurut hitungan. Gunakan nilai untuk mengurutkan naik menurut nilai. Gunakan -value untuk mengurutkan turun menurut nilai (misalnya, "facet=category,count:3,sort:count" mendapatkan tiga kategori teratas dalam faset menghasilkan urutan menurun berdasarkan jumlah dokumen dengan setiap nama kota). Jika tiga kategori teratas adalah Budget, Motel, dan Luxury, dan Budget memiliki lima hit, Motel memiliki enam, dan Luxury memiliki empat, maka ember berada dalam urutan Motel, Budget, Luxury. Untuk -value, "facet=rating,sort:-value" menghasilkan bucket untuk semua peringkat yang mungkin, dalam urutan turun menurut nilai (misalnya, jika peringkat dari 1 hingga 5, wadah diurutkan 5, 4, 3, 2, 1, terlepas dari berapa banyak dokumen yang cocok dengan setiap peringkat). "nilai" dapat diatur ke nilai numerik yang dibatasi pipa atau Edm.DateTimeOffset yang menentukan sekumpulan nilai entri faset dinamis (misalnya, "facet=baseRate,values:10 | 20" menghasilkan tiga wadah: satu untuk tarif dasar 0 hingga tetapi tidak termasuk 10, satu untuk 10 hingga tetapi tidak termasuk 20, dan satu untuk 20 dan lebih tinggi). String "facet=lastRenovationDate,values:2010-02-01T00:00:00Z" menghasilkan dua wadah: satu untuk hotel yang direnovasi sebelum Februari 2010, dan satu untuk hotel yang direnovasi 1 Februari 2010 atau yang lebih baru. Nilai harus dicantumkan secara berurutan, urutan naik untuk mendapatkan hasil yang diharapkan. "interval" adalah interval bilangan bulat yang lebih besar dari 0 untuk angka, atau menit, jam, hari, minggu, bulan, kuartal, tahun untuk nilai waktu tanggal. Misalnya, "facet=baseRate,interval:100" menghasilkan wadah berdasarkan rentang laju dasar ukuran 100. Jika tarif dasar semuanya antara $60 dan $600, akan ada wadah untuk 0-100, 100-200, 200-300, 300-400, 400-500, dan 500-600. String "facet=lastRenovationDate,interval:year" menghasilkan satu wadah untuk setiap tahun ketika hotel direnovasi. "timeoffset" dapat diatur ke ([+-]hh:mm, [+-]hhmm, atau [+-]hh). Jika digunakan, parameter timeoffset harus dikombinasikan dengan opsi interval, dan hanya saat diterapkan ke bidang jenis Edm.DateTimeOffset. Nilai menentukan offset waktu UTC untuk memperhitungkan dalam mengatur batas waktu. Misalnya: "facet=lastRenovationDate,interval:day,timeoffset:-01:00" menggunakan batas hari yang dimulai pada pukul 01:00:00 UTC (tengah malam di zona waktu target). hitungan dan pengurutan dapat dikombinasikan dalam spesifikasi faset yang sama, tetapi tidak dapat dikombinasikan dengan interval atau nilai, dan interval dan nilai tidak dapat digabungkan bersama-sama. Aspek interval pada waktu tanggal dihitung berdasarkan waktu UTC jika offset waktu tidak ditentukan. Misalnya: untuk "facet=lastRenovationDate,interval:day", batas hari dimulai pada pukul 00:00:00 UTC. |
featuresMode (pratinjau) | Boolean | Fakultatif. Nilai yang valid adalah "diaktifkan" dan "dinonaktifkan". Defaultnya adalah "dinonaktifkan". Nilai yang menentukan apakah hasil harus menyertakan fitur hasil kueri , digunakan untuk menghitung skor relevansi dokumen sehubungan dengan kueri, seperti per kesamaan bidang. Gunakan "diaktifkan" untuk mengekspos lebih banyak fitur hasil kueri: per skor kesamaan bidang, frekuensi istilah per bidang, dan jumlah per bidang token unik yang cocok. Untuk informasi selengkapnya, lihat Kesamaan danpenilaian . |
$filter | tali | Fakultatif. Ekspresi pencarian terstruktur dalam sintaks OData standar. Hanya bidang yang dapat difilter yang dapat digunakan dalam filter. Ketika dipanggil dengan POST, parameter ini diberi nama filter alih-alih $filter. Lihat Sintaks Ekspresi OData untuk Pencarian Azure AI untuk detail tentang subset tata bahasa ekspresi OData yang didukung Azure AI Search. |
Menyoroti | tali | Fakultatif. Sekumpulan nama bidang yang dipisahkan koma yang digunakan untuk sorotan temuan. Hanya bidang yang dapat dicari yang dapat digunakan untuk penyorotan temuan. Secara default, Azure AI Search mengembalikan hingga lima sorotan per bidang. Batas dapat dikonfigurasi per bidang dengan menambahkan "-<maks # sorotan>" mengikuti nama bidang. Misalnya, "highlight=title-3,description-10" mengembalikan hingga tiga hit yang disorot dari bidang judul dan hingga 10 temuan dari bidang deskripsi. Jumlah maksimum sorotan harus berupa bilangan bulat antara 1 dan 1000 inklusif. |
highlightPostTag | tali | Fakultatif. Default ke "</em>" . Tag string yang ditambahkan ke istilah yang disorot. Harus diatur dengan highlightPreTag. Karakter yang dicadangkan dalam URL harus dikodekan persen (misalnya, %23 bukan #). |
highlightPreTag | tali | Fakultatif. Default ke "</em>" . Tag string yang prepend ke istilah yang disorot. Harus diatur dengan highlightPostTag. Karakter yang dicadangkan dalam URL harus dikodekan persen (misalnya, %23 bukan #). |
minimumCoverage | Integer | Fakultatif. Nilai yang valid adalah angka antara 0 dan 100, menunjukkan persentase indeks yang harus tersedia untuk melayani kueri sebelum dapat dilaporkan sebagai keberhasilan. Default ke "100".
Cakupan seratus persen berarti bahwa semua pecahan menanggapi permintaan (baik masalah kesehatan layanan maupun aktivitas pemeliharaan mengurangi cakupan). Di bawah pengaturan default, kurang dari cakupan penuh mengembalikan kode status HTTP 503. Menurunkan minimumCoverage dapat berguna jika terjadi kesalahan 503 dan Anda ingin meningkatkan probabilitas keberhasilan kueri, terutama untuk layanan yang dikonfigurasi untuk satu replika. Jika Anda mengatur minimumCoverage dan Pencarian berhasil, nilai tersebut mengembalikan HTTP 200 dan menyertakan nilai @search.coverage dalam respons yang menunjukkan persentase indeks yang disertakan dalam kueri. Dalam skenario ini, tidak semua dokumen yang cocok dijamin akan ada dalam hasil pencarian, tetapi jika ketersediaan pencarian lebih penting daripada pengenalan, maka mengurangi cakupan dapat menjadi strategi mitigasi yang layak. |
$orderby | tali | Fakultatif. Daftar ekspresi yang dipisahkan koma untuk mengurutkan hasilnya. Ketika dipanggil dengan POST, parameter ini dinamai orderby alih-alih $orderby. Setiap ekspresi dapat berupa nama bidang atau panggilan ke fungsi geo.distance(). Setiap ekspresi dapat diikuti dengan "asc" untuk menunjukkan naik, dan "turun" untuk menunjukkan menurun. Jika ada nilai null di bidang pengurutan, null muncul terlebih dahulu dalam urutan naik dan terakhir dalam urutan menurun. Defaultnya adalah urutan naik. Ikatan akan dipecah oleh skor kecocokan dokumen. Jika tidak ada $orderby yang ditentukan, urutan pengurutan default turun menurut skor kecocokan dokumen. Ada batas 32 klausul untuk $orderby. |
queryLanguage (pratinjau) | tali | Fakultatif. Nilai yang valid adalahbahasa yang didukung |
queryType | tali | Fakultatif. Nilai yang valid adalah "sederhana", "penuh", atau "semantik" (pratinjau). Default ke "sederhana". Nilai ini diabaikan untuk pencarian vektor, tetapi berlaku untuk pencarian teks dalam skenario hibrid. "penuh" menginterpretasikan string kueri menggunakan sintaks kueri Lucene lengkap yang memungkinkan pencarian khusus bidang dan tertimbang. Pencarian rentang dalam bahasa kueri Lucene tidak didukung demi $filter, yang menawarkan fungsionalitas serupa. "semantik" meningkatkan presisi hasil pencarian dengan mererankam 50 kecocokan teratas menggunakan model peringkat yang dilatih pada korpus Bing untuk kueri yang dinyatakan dalam bahasa alami dibandingkan dengan kata kunci. Jika Anda mengatur jenis kueri ke semantik, Anda juga harus mengatur queryLanguage dan semanticConfiguration. Anda dapat secara opsional mengatur jawaban jika Anda ingin juga mengembalikan 3 jawaban teratas jika input kueri diformulasikan dalam bahasa alami ("apa itu ...), dan Anda dapat secara opsional mengatur keterangan untuk mengekstrak bagian kunci dari dokumen berperingkat tertinggi. |
scoringParameter | tali | Fakultatif. Menunjukkan nilai untuk setiap parameter yang ditentukan dalam fungsi penilaian (seperti referencePointParameter) menggunakan format "name-value1,value2,..." Ketika dipanggil dengan POST, parameter ini diberi nama scoringParameters alih-alih scoringParameter. Selain itu, Anda menentukannya sebagai array string JSON di mana setiap string adalah pasangan nilai nama terpisah.
Untuk profil penilaian yang menyertakan fungsi, pisahkan fungsi dari daftar inputnya dengan karakter - . Misalnya, fungsi yang disebut "mylocation" adalah "&scoringParameter=mylocation--122.2,44.8". Garis putus pertama memisahkan nama fungsi dari daftar nilai, sedangkan tanda hutang kedua adalah bagian dari nilai pertama (garis bujur dalam contoh ini).
Untuk parameter penilaian seperti untuk peningkatan tag yang dapat berisi koma, Anda dapat menghindari nilai tersebut dalam daftar menggunakan tanda kutip tunggal. Jika nilai itu sendiri berisi tanda kutip tunggal, Anda dapat melepaskannya dengan menggandakannya. Misalkan Anda memiliki parameter peningkatan tag yang disebut "mytag" dan Anda ingin meningkatkan nilai tag "Hello, O'Brien" dan "Smith", opsi string kueri kemudian akan menjadi "&scoringParameter=mytag-'Hello, O''Brien',Smith". Kuotasi hanya diperlukan untuk nilai yang berisi koma. |
scoringProfile | tali | Fakultatif. Nama profil penilaian untuk mengevaluasi skor kecocokan untuk dokumen yang cocok untuk mengurutkan hasilnya. |
scoringStatistics | tali | Fakultatif. Nilai yang valid adalah "lokal" atau "global". Default ke "lokal". Tentukan apakah akan menghitung statistik penilaian, seperti frekuensi dokumen, secara global (di semua pecahan) untuk penilaian yang lebih konsisten, atau secara lokal (pada pecahan saat ini) untuk latensi yang lebih rendah. Lihat Statistik Penilaian di Azure AI Search. Statistik penilaian akan selalu dihitung secara lokal untuk istilah yang menggunakan pencarian fuzzy ('~'). |
mencari | tali | Fakultatif. Teks yang akan dicari. Nilai ini diabaikan untuk pencarian vektor, tetapi berlaku untuk pencarian teks dalam skenario hibrid. Di REST API, semua bidang yang dapat dicari dicari secara default kecuali searchFields ditentukan. Dalam indeks, teks dalam bidang yang dapat dicari ditokenisasi, sehingga beberapa istilah dapat dipisahkan oleh spasi kosong (misalnya: 'search=hello world'). Untuk mencocokkan istilah apa pun, gunakan * (ini dapat berguna untuk kueri filter boolean). Menghilangkan parameter ini memiliki efek yang sama seperti mengaturnya ke * . Lihat sintaks kueri sederhana Hasil terkadang mengejutkan saat mengkueri bidang yang dapat dicari. Tokenizer mencakup logika untuk menangani kasus yang umum untuk teks bahasa Inggris seperti apostrof, koma dalam angka, dan sebagainya. Misalnya, 'search=123,456' akan cocok dengan satu istilah '123,456' daripada istilah individu '123' dan '456', karena koma digunakan sebagai pemisah ribuan untuk angka besar dalam bahasa Inggris. Untuk alasan ini, sebaiknya gunakan spasi kosong daripada tanda baca untuk memisahkan istilah dalam parameter pencarian. |
searchMode | tali | Fakultatif. Nilai yang valid adalah "any" atau "all" Defaults to "any". Menentukan apakah salah satu atau semua istilah pencarian harus dicocokkan untuk menghitung dokumen sebagai kecocokan. |
searchFields | tali | Fakultatif. Daftar nama bidang yang dipisahkan koma untuk mencari teks yang ditentukan. Bidang target harus ditandai sebagai dapat dicari dalam skema indeks dan harus berjenis Edm.String , Edm.ComplexType , atau Collection(Edm.String) . |
$select | tali | Fakultatif. Daftar bidang yang dipisahkan koma untuk disertakan dalam tataan hasil. Hanya bidang yang ditandai sebagai dapat diambil yang dapat disertakan dalam klausa ini. Jika tidak ditentukan atau diatur ke * , semua bidang yang ditandai sebagai dapat diambil dalam skema disertakan dalam proyeksi. Ketika dipanggil dengan POST, parameter ini diberi nama pilih alih-alih $select. |
semanticConfiguration (pratinjau) | tali | Fakultatif. Diperlukan jika queryType="semantic". Nama konfigurasi semantik yang mencantumkan bidang mana yang harus digunakan untuk peringkat semantik, keterangan, sorotan, dan jawaban. Untuk informasi selengkapnya, lihat Membuat kueri semantik. |
sessionId | tali | Fakultatif. Menggunakan sessionId membantu meningkatkan konsistensi skor relevansi untuk layanan pencarian dengan beberapa replika. Dalam konfigurasi multi-replika, mungkin ada sedikit perbedaan antara skor relevansi dokumen individual untuk kueri yang sama. Ketika ID sesi disediakan, layanan melakukan upaya terbaik untuk merutekan permintaan tertentu ke replika yang sama untuk sesi tersebut. Waspadalah bahwa menggunakan kembali nilai ID sesi yang sama berulang kali dapat mengganggu penyeimbangan beban permintaan di seluruh replika dan berdampak buruk pada performa layanan pencarian. Nilai yang digunakan sebagai sessionId tidak dapat dimulai dengan karakter '_'. Jika layanan tidak memiliki replika apa pun, parameter ini tidak berpengaruh pada performa atau konsistensi skor. |
$skip | Integer | Fakultatif. Jumlah hasil pencarian yang akan dilewati. Ketika dipanggil dengan POST, parameter ini dinamai lewati alih-alih $skip. Nilai ini tidak boleh lebih besar dari 100.000. Jika Anda perlu memindai dokumen secara berurutan, tetapi tidak dapat menggunakan $skip karena batasan ini, pertimbangkan untuk menggunakan $orderby pada bidang yang memiliki nilai unik untuk setiap dokumen dalam indeks (seperti kunci dokumen, misalnya) dan $filter dengan kueri rentang sebagai gantinya. |
ejaan (pratinjau) | Tali | Fakultatif. Nilai yang valid adalah "none" dan "lexicon". Defaultnya adalah "none". Tingkatkan pengenalan dengan mengoreksi istilah kueri pencarian individual. Anda dapat menggunakannya pada jenis kueri sederhana, penuh, dan semantik. Jika digunakan, parameter ejaan memerlukan queryLanguage. Untuk informasi dan contoh selengkapnya, lihat Menambahkan pemeriksaan ejaan ke kueri. |
$top | Integer | Fakultatif. Jumlah hasil pencarian yang akan diambil. Ini default ke 50. Ketika dipanggil dengan POST, parameter ini dinamai teratas alih-alih $top. Jika Anda menentukan nilai yang lebih besar dari 1000 dan ada lebih dari 1000 hasil, hanya 1000 hasil pertama yang akan dikembalikan, bersama dengan tautan ke halaman hasil berikutnya (lihat "@odata.nextLink" dalam contoh di bawah). |
vektor (pratinjau) | Array | Fakultatif. Jenis objek dalam array adalah kueri vektor. Parameter kueri untuk kueri vektor.
"nilai" adalah representasi vektor kueri pencarian. Representasi ini harus dibentuk secara eksternal. Azure AI Search tidak membuat penyematan. "k" adalah bilangan bulat yang menentukan jumlah tetangga terdekat untuk kembali sebagai hit teratas. Defaultnya adalah 50. Minimum adalah 1 dan maksimum adalah 10.000. "bidang" adalah nama bidang daftar yang dibatasi koma yang berisi data vektor. Hanya bidang jenis Collection(Edm.Single) yang dapat disertakan dalam daftar "bidang". |
Jawaban
Kode Status: 200 OK dikembalikan untuk respons yang berhasil. Ada dua contoh respons dalam artikel ini, masing-masing satu untuk pencarian semantik dan featuresMode.
Sampel respons untuk kueri semantik
Contoh pertama menunjukkan respons penuh untuk hasil paling atas untuk kueri semantik "bagaimana bentuk cloud".
"@search.answers" muncul saat Anda menentukan parameter jawaban, dan ketika kueri dan bidang yang ditargetkan dalam indeks berisi konten yang dapat dikenali sebagai jawaban. Array @search.answers yang memiliki kunci, teks, dan sorotan. Skor adalah indikator kekuatan jawaban.
"value" adalah isi respons. @search.rerankerScore ditetapkan oleh algoritma peringkat semantik dan digunakan untuk memberi peringkat hasil (@search.score berasal dari algoritma kesamaan BM25, yang digunakan saat menilai hasil awal). Keterangan menyertakan teks biasa dan versi yang disorot. Contoh ini dibuat menggunakan keterampilan pengenalan OCR dan entitas. Bidang untuk konten yang diekstrak dan digabungkan disertakan dalam respons.
{
"@search.answers": [
{
"key": "aHR0cHM6Ly9oZWlkaXN0YmxvYnN0b3JhZ2UuYmxvYi5jb3JlLndpbmRvd3MubmV0L25hc2EtZWJvb2stMS01MC9wYWdlLTQ1LnBkZg2",
"text": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).",
"highlights": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form<em> where air is ascending</em> (over land in this case), but not where it is<em> descending</em> (over the river).",
"score": 0.94639826
}
],
"value": [
{
"@search.score": 0.5479723,
"@search.rerankerScore": 1.0321671911515296,
"@search.captions": [
{
"text": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America.",
"highlights": "Like all<em> clouds</em>, it<em> forms</em> when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley<em> fog</em>, which is common in the Pacific Northwest of North America."
}
],
"content": "\nA\nT\n\nM\nO\n\nS\nP\n\nH\nE\n\nR\nE\n\nE\nA\n\nR\nT\n\nH\n\n34\n\nValley Fog\nCanada\n\nFog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n",
"metadata_storage_path": "aHR0cHM6Ly9oZWlkaXN0YmxvYnN0b3JhZ2UuYmxvYi5jb3JlLndpbmRvd3MubmV0L25hc2EtZWJvb2stMS01MC9wYWdlLTQxLnBkZg2",
"people": [],
"locations": [
"Pacific Northwest",
"North America",
"Vancouver"
],
"merged_content": "\nA\nT\n\nM\nO\n\nS\nP\n\nH\nE\n\nR\nE\n\nE\nA\n\nR\nT\n\nH\n\n34\n\nValley Fog\nCanada\n\nFog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n",
"text": [],
"layoutText": []
}
]
}
Sampel respons untuk featuresMode
Contoh ini memperlihatkan output "@search.features" dari kueri yang menyertakan featuresMode.
{
"@odata.count": # (if $count=true was provided in the query),
"@search.coverage": # (if minimumCoverage was provided in the query),
"@search.facets": { (if faceting was specified in the query)
"facet_field": [
{
"value": facet_entry_value (for non-range facets),
"from": facet_entry_value (for range facets),
"to": facet_entry_value (for range facets),
"count": number_of_documents
}
],
...
},
"@search.nextPageParameters": { (request body to fetch the next page of results if not all results could be returned in this response and Search was called with POST)
"count": ... (value from request body if present),
"facets": ... (value from request body if present),
"featuresMode" : ... (value from request body if present),
"filter": ... (value from request body if present),
"highlight": ... (value from request body if present),
"highlightPreTag": ... (value from request body if present),
"highlightPostTag": ... (value from request body if present),
"minimumCoverage": ... (value from request body if present),
"orderby": ... (value from request body if present),
"scoringParameters": ... (value from request body if present),
"scoringProfile": ... (value from request body if present),
"scoringStatistics": ... (value from request body if present),
"search": ... (value from request body if present),
"searchFields": ... (value from request body if present),
"searchMode": ... (value from request body if present),
"select": ... (value from request body if present),
"sessionId" : ... (value from request body if present),
"skip": ... (page size plus value from request body if present),
"top": ... (value from request body if present minus page size),
},
"value": [
{
"@search.score": document_score (if a text query was provided),
"@search.highlights": {
field_name: [ subset of text, ... ],
...
},
"@search.features": {
"field_name": {
"uniqueTokenMatches": feature_score,
"similarityScore": feature_score,
"termFrequency": feature_score,
},
...
},
key_field_name: document_key,
field_name: field_value (retrievable fields or specified projection),
...
},
...
],
"@odata.nextLink": (URL to fetch the next page of results if not all results could be returned in this response; Applies to both GET and POST)
}
Contoh
Anda dapat menemukan contoh lainnya dalam Sintaks Ekspresi OData untuk Azure AI Search.
Contoh : pencarian sederhana
Temukan dokumen dalam indeks menggunakan sintaks kueri sederhana. Kueri ini mengembalikan hotel di mana bidang yang dapat dicari berisi istilah "kenyamanan" dan "lokasi" tetapi bukan "motel":
Get /indexes/hotels/docs?search=comfort +location –motel&searchMode=all&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "comfort +location -motel",
"searchMode": "all"
}
Ujung
Penggunaan searchMode=all
mengambil alih default searchMode=any
, memastikan bahwa -motel
berarti "DAN TIDAK" alih-alih "ATAU TIDAK". Tanpa searchMode=all
, Anda mendapatkan "ATAU TIDAK" yang berkembang daripada membatasi hasil pencarian, dan ini dapat berlawanan intuitif bagi beberapa pengguna.
Contoh : pencarian Lucene lengkap
Temukan dokumen dalam indeks menggunakan sintaks kueri Lucene (lihat sintaks kueri Lucene di Azure AI Search). Kueri ini mengembalikan hotel di mana bidang kategori berisi istilah "anggaran" dan semua bidang yang dapat dicari yang berisi frasa "baru-baru ini direnovasi". Dokumen yang berisi frasa "baru-baru ini direnovasi" diberi peringkat lebih tinggi sebagai hasil dari nilai peningkatan istilah (3)
GET /indexes/hotels/docs?search=Category:budget AND \"recently renovated\"^3&searchMode=all&api-version=2021-04-30-Preview&querytype=full`
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "Category:budget AND \"recently renovated\"^3",
"queryType": "full",
"searchMode": "all"
}
Contoh : pencarian semantik
Panggil model peringkat semantik dengan jawaban, keterangan, dan konten yang disorot. Respons untuk kueri ini dapat ditemukan di bagian sebelumnya.
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "how do clouds form",
"queryType": "semantic",
"semanticConfiguration": "my-semantic-config",
"queryLanguage": "en-us",
"answers": "extractive",
"captions": "extractive",
"count": "true"
}
Contoh : pencarian vektor
Untuk indeks yang memiliki bidang jenis Collection(Edm.Single)
dan konfigurasi vektor, Anda dapat menentukan parameter kueri vektor. Parameter kueri vektor mencakup bidang vektor yang berada dalam cakupan untuk kueri, jumlah "k" hit teratas untuk dikembalikan, dan representasi vektor input kueri.
Menambahkan parameter "pilih" sangat membantu jika indeks menyertakan bidang teks. Pencocokan dan relevansi didasarkan pada vektor, tetapi bidang yang berisi konten yang dapat dibaca manusia lebih berguna bagi seseorang yang membaca hasilnya. Atau, Anda dapat menulis kode yang mengonversi data vektor dalam hasil pencarian Anda menjadi teks.
POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version={{api-version}}
Content-Type: application/json
api-key: {{admin-api-key}}
{
"search": (this parameter is ignored in vector search),
"vectors": [{
"value": [
-0.009154141,
0.018708462,
. . .
-0.02178128,
-0.00086512347
],
"fields": "contentVector",
"k": 5
}],
"select": "title, content, category"
}
Contoh : orderby
Cari indeks dan kembalikan hasil yang diurutkan menurut tanggal dalam urutan menurun.
GET /indexes/hotels/docs?search=*&$orderby=LastRenovationDate desc&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "*",
"orderby": "LastRenovationDate desc"
}
Contoh : memfilter menggunakan ekspresi OData
Ambil dokumen yang cocok dengan ekspresi filter tertentu:
GET /indexes/hotels/docs?$filter=(Rooms/BaseRate ge 60 and Rooms/BaseRate lt 300) or HotelName eq 'Fancy Stay'&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"filter": "(Rooms/BaseRate ge 60 and Rooms/BaseRate lt 300) or HotelName eq 'Fancy Stay'"
}
Contoh : pencarian tersaring
Dalam pencarian tersaring, cari indeks dan ambil faset untuk kategori, peringkat, tag, serta item dengan baseRate dalam rentang tertentu.
GET /indexes/hotels/docs?search=*&facet=Category&facet=Rating&facet=Tags&facet=Rooms/BaseRate,values:80|150|220&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "test",
"facets": [ "Category", "Rating", "Tags", "Rooms/BaseRate,values:80|150|220" ]
}
Perhatikan faset terakhir ada di sub-bidang. Faset menghitung dokumen induk (Hotel) dan bukan subdokumen menengah (Kamar), sehingga respons akan menentukan jumlah hotel yang memiliki kamar di setiap wadah harga.
Contoh : Mempersempit kueri tersaring
Menggunakan filter, persempit hasil kueri tersaring sebelumnya setelah pengguna memilih Peringkat 3 dan kategori "Motel".
GET /indexes/hotels/docs?search=*&facet=tags&facet=Rooms/BaseRate,values:80|150|220&$filter=Rating eq 3 and Category eq 'Motel'&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "test",
"facets": [ "tags", "Rooms/BaseRate,values:80|150|220" ],
"filter": "Rating eq 3 and Category eq 'Motel'"
}
Contoh: pencarian tersaring dengan batasan pada setiap kategori
Dalam pencarian tersaring, atur batas atas pada istilah unik yang dikembalikan dalam kueri. Defaultnya adalah 10, tetapi Anda dapat menambah atau mengurangi nilai ini menggunakan parameter hitungan pada atribut faset. Contoh ini mengembalikan faset untuk kota, dibatasi hingga 5.
GET /indexes/hotels/docs?search=*&facet=Address/City,count:5&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "test",
"facets": [ "Address/City,count:5" ]
}
Contoh : pencarian dalam bidang
Cari indeks dalam bidang tertentu (misalnya, bidang bahasa)
GET /indexes/hotels/docs?search=hôtel&searchFields=Description_fr&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "hôtel",
"searchFields": "Description_fr"
}
Cari indeks di beberapa bidang. Misalnya, Anda dapat menyimpan dan mengkueri bidang yang dapat dicari dalam beberapa bahasa, semuanya dalam indeks yang sama. Jika deskripsi bahasa Inggris dan Prancis berdampingan dalam dokumen yang sama, Anda bisa mengembalikan salah satu atau semua dalam hasil kueri:
GET /indexes/hotels/docs?search=hotel&searchFields=Description,Description_fr&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "hotel",
"searchFields": "Description, Description_fr"
}
Anda hanya bisa mengkueri satu indeks pada satu waktu. Jangan membuat beberapa indeks untuk setiap bahasa kecuali Anda berencana untuk mengkueri satu per satu.
Contoh : hasil halaman
Dapatkan halaman pertama item (ukuran halaman adalah 10):
GET /indexes/hotels/docs?search=*&$skip=0&$top=10&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "*",
"skip": 0,
"top": 10
}
Dapatkan halaman kedua item (ukuran halaman adalah 10):
GET /indexes/hotels/docs?search=*&$skip=10&$top=10&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "*",
"skip": 10,
"top": 10
}
Contoh : membatasi bidang dalam kumpulan hasil
Ambil sekumpulan bidang tertentu:
GET /indexes/hotels/docs?search=*&$select=HotelName,Description&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "*",
"select": "HotelName, Description"
}
Contoh : penyorotan temuan dalam hasil
Cari indeks dan kembalikan fragmen dengan sorotan hit:
GET /indexes/hotels/docs?search=something&highlight=Description&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "something",
"highlight": "Description"
}
Contoh : pencarian geospasial
Cari indeks dan kembalikan dokumen yang diurutkan dari lebih dekat ke lebih jauh dari lokasi referensi:
GET /indexes/hotels/docs?search=something&$orderby=geo.distance(Location, geography'POINT(-122.12315 47.88121)')&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "something",
"orderby": "geo.distance(Location, geography'POINT(-122.12315 47.88121)')"
}
Contoh: "temukan oleh saya" (tingkatkan relevansi lokasi terdekat
Cari indeks dengan asumsi ada profil penilaian yang disebut "geo" dengan dua fungsi penilaian jarak, satu mendefinisikan parameter yang disebut "currentLocation" dan satu mendefinisikan parameter yang disebut "lastLocation". Dalam contoh berikut, "currentLocation" memiliki pemisah satu tanda hubung (-
). Ini diikuti oleh koordinat bujur dan lintang, di mana bujur adalah nilai negatif.
GET /indexes/hotels/docs?search=something&scoringProfile=geo&scoringParameter=currentLocation--122.123,44.77233&scoringParameter=lastLocation--121.499,44.2113&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "something",
"scoringProfile": "geo",
"scoringParameters": [ "currentLocation--122.123,44.77233", "lastLocation--121.499,44.2113" ]
}
Contoh : kueri melalui indeks penuh alih-alih shard
Temukan dokumen dalam indeks sambil mendukung penilaian yang konsisten di atas latensi yang lebih rendah. Kueri ini menghitung frekuensi dokumen di seluruh indeks, dan melakukan upaya terbaik untuk menargetkan replika yang sama untuk semua kueri dalam "sesi" yang sama, yang membantu menghasilkan peringkat yang stabil dan dapat direproduksi.
GET /indexes/hotels/docs?search=hotel&sessionId=mySessionId&scoringStatistics=global&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "hotel",
"sessionId": "mySessionId",
"scoringStatistics" :"global"
}
Contoh : statistik penilaian (featuresMode)
Temukan dokumen dalam indeks dan kembalikan daftar fitur pengambilan informasi untuk setiap hasil yang menjelaskan penilaian antara dokumen yang cocok dan kueri. Kueri juga menghitung frekuensi dokumen di seluruh indeks untuk menghasilkan penilaian yang lebih konsisten.
GET /indexes/hotels/docs?search=hotel&featuresMode=enabled&scoringStatistics=global&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "hotel",
"featuresMode": "enabled",
"scoringStatistics" :"global"
}
Contoh respons yang menyertakan search.features
terlihat mirip dengan yang berikut ini:
"@search.score": 0.91875637,
"@search.features": {
"Description": {
"uniqueTokenMatches": 1,
"similarityScore": 0.2917966,
"termFrequency": 2
},
"HotelName": {
"uniqueTokenMatches": 1,
"similarityScore": 0.44458693,
"termFrequency": 1
}
. . .
Definisi
Bagian ini menyediakan detail tentang parameter yang terlalu kompleks untuk dibahas dalam tabel utama.
Tautan | Deskripsi |
---|---|
queryLanguage | Daftar bahasa yang didukung untuk ejaan dan pencarian semantik. |
queryLanguage
Nilai yang valid untuk parameter queryLanguage disediakan dalam tabel berikut, di kolom "queryLanguage", dan tidak peka huruf besar/kecil. Default untuk parameter secara keseluruhan adalah "en-us". Dalam setiap bahasa, ada varian default untuk setiap kode bahasa dua karakter. Misalnya, jika Anda menentukan "es", maka "es-us" digunakan secara default. Parameter queryLanguage diperlukan untuk permintaan kueri yang menyertakan "queryType=semantic" atau "speller=lexicon". Hanya ada satu nilai queryLanguage untuk seluruh permintaan, dan nilai tersebut akan digunakan untuk peringkat semantik, keterangan, jawaban, dan ejaan (tidak ada penimpaan untuk fitur individual).
Saat ini, dukungan bahasa bervariasi menurut fitur. Hanya bahasa Inggris, Spanyol, Prancis, dan Jerman yang didukung untuk serangkaian fitur lengkap, tetapi perhatikan bahwa pemeriksaan ejaan menerapkan lebih sedikit varian.
Jika Anda menentukan kode bahasa yang tidak didukung oleh fitur tertentu, seperti EN-GB dengan ejaan, layanan mengembalikan HTTP 400.
Untuk informasi selengkapnya tentang menggunakan setiap fitur, lihat Mengaktifkan peringkat dan keterangan semantik, Mengembalikan jawaban semantik, dan Menambahkan pemeriksaan ejaan ke kueri.
Penandaan "(pratinjau)" menunjukkan bahwa pengujian validasi di semua fitur (peringkat semantik, keterangan, jawaban, dan pemeriksaan ejaan) sedang berlangsung atau tertunda. Kami mendorong penggunaan semua varian bahasa dalam tabel berikut, tetapi merekomendasikan lebih banyak pengujian bahasa pratinjau untuk memastikan hasilnya valid untuk konten Anda. Bahasa dengan tanda centang dan tidak ada penandaan pratinjau yang telah divalidasi menggunakan himpunan data yang setara, dengan keuntungan terukur dalam relevansi.
Bahasa | queryLanguage | Peringkat dan keterangan semantik | Jawaban semantik | Speller |
---|---|---|---|---|
Inggris [en ] |
en, en-US (default), en-GB , en-IN , en-CA , en-AU |
✔️ | ✔️ | ✔️ (en, en-US ) |
Prancis [fr ] |
fr , fr-FR (default), fr-CA |
✔️ | ✔️ | ✔️ (fr, fr-FR ) |
Jerman [de ] |
de, de-DE (default) |
✔️ | ✔️ | ✔️ (de, de-DE ) |
Spanyol [es ] |
es, es-ES (default), es-MX |
✔️ | ✔️ | ✔️ (es, es-ES ) |
Italia [it ] |
it, it-IT (default) |
✔️ | ✔️ | |
Jepang [ja ] |
ja, ja-JP (default) |
✔️ | ✔️ (pratinjau) | |
Cina [zh ] |
zh, zh-CN (default), zh-TW |
✔️ | ✔️ (pratinjau) | |
Portugis [pt ] |
pt, pt-BR (default), pt-PT |
✔️ | ✔️ (pratinjau) | |
Belanda [nl ] |
nl, nl-BE, nl-NL (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | ✔️ (nl, nl-NL ) |
Bahasa Arab [ar ] |
ar, ar-SA (default), ar-EG, ar-MA, ar-KW, ar-JO |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Armenia |
hy-AM (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Bangla |
bn-IN (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Basque |
eu-ES (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Bulgaria [bg ] |
bg, bg-BG (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Katala [ca ] |
ca, ca-ES (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Kroasia [hr ] |
hr, hr-HR (default), hr-BA |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Ceko [cs ] |
cs, cs-CZ (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Denmark [da ] |
da, da-DK (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Estonia [et ] |
et, et-EE (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Finlandia [fi ] |
fi, fi-FI (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Galician |
gl-ES (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Yunani [el ] |
el, el-GR (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Gujarat |
gu-IN (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Ibrani |
he-IL (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Hindi [hi ] |
hi, hi-IN (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Hungaria [hu ] |
hu, hu-HU (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Islandia [is ] |
is, is-IS (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Bahasa Indonesia [id ] |
id, id-ID (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Irlandia |
ga-IE (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Kannada |
kn-IN (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Korea [ko ] |
ko, ko-KR (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Bahasa Latvia [lv ] |
lv, lv-LV (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Lituania [lt ] |
lt, lt-LT (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Malayalam |
ml-IN (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Malaysia [ms ] |
ms, ms-MY (default), ms-BN |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Marathi |
mr-IN (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Norwegia [no ] |
tidak, no-NO (default), nb-NO | ✔️ (pratinjau) | ✔️ (pratinjau) | |
Farsi |
fa-AE (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Polandia [pl ] |
pl, pl-PL (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Punjabi |
pa-IN (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Rumania [ro ] |
ro, ro-RO (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Rusia [ru ] |
ru, ru-RU (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Serbia [sr ] (Sirilik atau Latin) |
sr, sr-BA (default), sr-ME, sr-RS |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Slowakia [sk ] |
sk, sk-SK (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Slovenia [sl ] |
sl, sl-SL (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Tamil [ta ] |
ta, ta-IN (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Swedia [sv ] |
sv, sv-SE (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Telugu |
te-IN (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Thai [th ] |
th, th-TH (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Turki [tr ] |
tr, tr-TR (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Ukraina [uk ] |
uk, uk-UA (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Urdu |
ur-PK (default) |
✔️ (pratinjau) | ✔️ (pratinjau) | |
Vietnam [va ] |
va, vi-VN (default) |
✔️ (pratinjau) | ✔️ (pratinjau) |