Mengonfigurasi pemberi saran untuk pelengkapan otomatis dan saran dalam kueri

Catatan

Pencarian Azure AI tersedia melalui portal Azure, REST API, dan Azure SDK. Ini juga mendukung Foundry IQ, lapisan pengetahuan terkelola yang mengubah konten perusahaan menjadi pangkalan pengetahuan yang dapat digunakan kembali dan sadar izin untuk agen di portal Microsoft Foundry.

Di Pencarian Azure AI, typeahead atau "search-as-you-type" diaktifkan dengan menggunakan pelengkap saran. Suggester adalah konfigurasi dalam indeks yang menentukan bidang mana yang harus digunakan untuk melengkapi otomatis dan memberikan saran kecocokan. Bidang-bidang ini mengalami tokenisasi ekstra, menghasilkan urutan awalan untuk mendukung kecocokan pada istilah parsial. Misalnya, pemberi saran yang menyertakan city bidang dengan nilai untuk Seattle memiliki kombinasi awalan sea, seat, seatt, dan seattl untuk mendukung typeahead.

Kecocokan pada istilah sebagian dapat berupa kueri pelengkapan otomatis atau kecocokan yang disarankan. Pemberi saran yang sama mendukung kedua pengalaman.

Pengalaman fitur prediksi (typeahead)

Typeahead di Pencarian Azure AI dapat berupa pelengkapan otomatis, yang menyelesaikan input parsial untuk seluruh kueri istilah, atau saran yang mendorong pengguna untuk mengklik pada kecocokan tertentu. Pelengkapan otomatis menghasilkan kueri. Saran menghasilkan dokumen yang cocok.

Cuplikan layar berikut mengilustrasikan keduanya. Pelengkapan otomatis mengantisipasi istilah potensial, menyelesaikan tw dengan in. Saran adalah hasil pencarian mini, di mana bidang seperti hotel name mewakili dokumen pencarian hotel yang cocok dari indeks. Untuk saran, Anda dapat menampilkan bidang apa pun yang menyediakan informasi deskriptif.

Cuplikan layar memperlihatkan perbandingan visual pelengkapan otomatis dan saran kueri.

Anda dapat menggunakan fitur ini secara terpisah ataupun bersama-sama. Untuk menerapkan perilaku ini di Pencarian Azure AI, ada komponen indeks dan kueri.

  • Tambahkan pemberi saran ke definisi indeks pencarian. Sisa artikel ini berfokus pada pembuatan pemberi saran.

  • Panggil kueri dengan pemberi saran yang diaktifkan, dalam bentuk permintaan saran atau permintaan lengkapi otomatis, dengan menggunakan salah satu API yang tercantum di Menggunakan pemberi saran.

Search-as-you-type diaktifkan berdasarkan per bidang untuk bidang string. Anda dapat menerapkan kedua perilaku typeahead dalam solusi pencarian yang sama jika Anda menginginkan pengalaman yang mirip dengan yang ditunjukkan dalam tangkap layar. Kedua permintaan menargetkan kumpulan dokumen indeks tertentu, dan respons dikembalikan setelah pengguna menyediakan setidaknya string input tiga karakter.

Cara membuat pemberi saran

Untuk membuat pemberi saran, tambahkan ke definisi indeks. Pemberi saran mengambil nama dan koleksi bidang tempat pengalaman typeahead diaktifkan. Waktu terbaik untuk membuat suggester adalah saat Anda juga sedang menentukan bidang yang akan menggunakannya.

  • Gunakan bidang string saja.

  • Jika bidang string adalah bagian dari jenis kompleks (misalnya, bidang Kota dalam Alamat), sertakan induk di jalur bidang: "Address/City" (REST, C#, dan Python), atau ["Address"]["City"] (JavaScript).

  • Gunakan penganalisis Lucene standar default ("analyzer": null) atau bahasa penganalisis (misalnya "analyzer": "fr.microsoft") pada bidang tersebut.

Jika Anda mencoba membuat pemberi saran menggunakan bidang yang sudah ada sebelumnya, API melarangnya. Awalan dihasilkan selama pengindeksan ketika istilah parsial dalam dua atau lebih kombinasi karakter ditokenisasi bersama dengan keseluruhan istilah. Mengingat bahwa bidang yang ada sudah ditokenisasi, Anda harus membangun kembali indeks jika Anda ingin menambahkannya ke pemberi saran. Untuk informasi selengkapnya, lihat Memperbarui atau membangun ulang indeks di Pencarian Azure AI.

Memilih bidang

Meskipun pengusul memiliki beberapa properti, ini terutama merupakan kumpulan bidang string untuk mengaktifkan pengalaman pencarian saat Anda mengetik. Ada satu pemberi saran untuk setiap indeks, sehingga daftar pemberi saran harus menyertakan semua bidang yang menyumbangkan konten untuk saran dan pelengkapan otomatis.

Autocomplete mendapatkan manfaat dari kumpulan bidang yang lebih besar untuk diambil, karena konten tambahan memiliki potensi lebih besar untuk menyelesaikan istilah.

Di sisi lain, saran memberikan hasil yang lebih baik ketika pilihan bidang Anda selektif. Ingatlah bahwa saran adalah proksi untuk dokumen pencarian sehingga pilih bidang yang paling mewakili satu hasil. Nama, judul, atau bidang unik lainnya yang membedakan di antara beberapa kecocokan berfungsi paling baik. Jika bidang terdiri dari nilai berulang, saran terdiri dari hasil yang identik dan pengguna tidak akan tahu mana yang harus dipilih.

Untuk memenuhi kedua jenis pengalaman pencarian sembari mengetik, tambahkan semua bidang yang Anda butuhkan untuk pengisian otomatis, tetapi kemudian gunakan select, top, filter, dan searchFields untuk mengontrol hasil saran.

Pilih penganalisis

Pilihan penganalisis Anda menentukan bagaimana bidang ditokenisasi dan ditambahkan awalan. Misalnya, untuk string yang dipending seperti konteks-sensitif, menggunakan penganalisis bahasa menghasilkan kombinasi token ini: konteks, sensitif, konteks-sensitif. Seandainya Anda menggunakan penganalisis Lucene standar, string yang terhubung dengan tanda hubung tidak akan ada.

Saat mengevaluasi penganalisis, pertimbangkan untuk menggunakanAnalisis Teks API untuk wawasan tentang cara istilah diproses. Setelah indeks dibangun, Anda dapat mencoba berbagai penganalisis pada string untuk melihat output token.

Bidang-bidang yang menggunakan penganalisis kustom atau penganalisis bawaan, (kecuali Lucene standar) dilarang secara eksplisit untuk mencegah hasil yang buruk.

Catatan

Jika Anda perlu menyiasati batasan penganalisis, misalnya jika Anda memerlukan penganalis kata kunci atau ngram untuk skenario kueri tertentu, Anda harus menggunakan dua bidang terpisah untuk konten yang sama. Ini memungkinkan salah satu bidang untuk memiliki pemberi saran, sementara yang lain dapat disiapkan dengan konfigurasi penganalisis kustom. Jika Anda menggunakan pengindeks, Anda dapat memetakan bidang sumber ke dua bidang indeks yang berbeda untuk mendukung beberapa konfigurasi.

Membuat menggunakan portal Microsoft Azure

Di portal Microsoft Azure, Anda dapat menentukan pemberi saran saat memilih Tambahkan indeks.

  1. Pilih Tambahkan indeks dan tambahkan bidang string.
  2. Atur atribusi bidang ke Dapat Dicari.
  3. Pilih penganalisis.
  4. Setelah bidang ditentukan, pilih Pengaturan lengkapi otomatis.
  5. Pilih bidang string pencarian yang ingin Anda aktifkan fitur pelengkapan otomatisnya.

Membuat menggunakan REST

Di REST API, tambahkan pemberi saran dengan menggunakan Buat Indeks.

{
  "name": "hotels-sample",
  "fields": [
    . . .
        {
            "name": "HotelName",
            "type": "Edm.String",
            "facetable": false,
            "filterable": false,
            "key": false,
            "retrievable": true,
            "searchable": true,
            "sortable": false,
            "analyzer": "en.microsoft",
            "indexAnalyzer": null,
            "searchAnalyzer": null,
            "synonymMaps": [],
            "fields": []
        },
  ],
  "suggesters": [
    {
      "name": "sg",
      "searchMode": "analyzingInfixMatching",
      "sourceFields": ["HotelName"]
    }
  ],
  "scoringProfiles": [
    . . .
  ]
}

Buat menggunakan .NET

Pada C#, tentukan objek SearchSuggester. Suggesters adalah koleksi pada objek SearchIndex, tetapi hanya dapat mengambil satu item. Tambahkan saran ke definisi indeks.

private static void CreateIndex(string indexName, SearchIndexClient indexClient)
{
    FieldBuilder fieldBuilder = new FieldBuilder();
    var searchFields = fieldBuilder.Build(typeof(Hotel));

    var definition = new SearchIndex(indexName, searchFields);

    var suggester = new SearchSuggester("sg", new[] { "HotelName", "Category", "Address/City", "Address/StateProvince" });
    definition.Suggesters.Add(suggester);

    indexClient.CreateOrUpdateIndex(definition);
}

Referensi properti

Properti Deskripsi
nama Ditentukan dalam definisi pemberi saran, tetapi juga dipanggil pada permintaan Pelengkapan Otomatis atau Saran.
sourceFields Ditentukan dalam definisi pemberi saran. Itu adalah daftar satu bidang atau lebih dalam indeks yang merupakan sumber konten untuk saran. Kolom harus bertipe Edm.String. Jika sebuah penganalisis ditentukan pada bidang, maka penganalisis tersebut harus berupa penganalisis leksikal bernama yang tercantum di LexicalAnalyzerName Struct (tidak termasuk penganalisis kustom).

Sebagai praktik terbaik, tentukan hanya elemen yang sesuai untuk menjawab respons yang diharapkan dan sesuai, baik itu teks lengkap di bilah pencarian atau menu tarik-turun.

Nama hotel adalah kandidat yang baik karena memiliki presisi. Bidang verbose seperti deskripsi dan komentar terlalu padat. Demikian pula bidang berulang, seperti kategori dan tag, juga kurang efektif. Dalam contoh, kami tetap menyertakan kategori untuk menunjukkan bahwa Anda dapat menyertakan beberapa bidang.
mode pencarian Parameter khusus REST, tetapi juga terlihat di portal Azure. Parameter ini tidak tersedia di .NET SDK. Ini menunjukkan strategi yang digunakan untuk mencari frasa calon. Mode satu-satunya yang didukung adalah analyzingInfixMatching, yang saat ini cocok pada awal sebuah istilah.

Gunakan pemberi saran

Pemberi saran digunakan dalam kueri. Setelah suggester dibuat, hubungi salah satu API berikut untuk pengalaman pencarian-seiring-anda-mengetik:

Dalam aplikasi pencarian, kode klien harus menggunakan pustaka seperti jQuery UI Autocomplete untuk mengumpulkan kueri parsial dan menyediakan kecocokan. Untuk informasi selengkapnya tentang tugas ini, lihat Menambahkan pelengkapan otomatis atau hasil yang disarankan ke kode klien.

Penggunaan API diilustrasikan dalam panggilan berikut ke REST API Pelengkapan Otomatis. Ada dua pelajaran dari contoh ini. Pertama, seperti semua kueri, operasi ini bertentangan dengan kumpulan dokumen indeks dan kueri menyertakan search parameter, yang dalam hal ini menyediakan kueri parsial. Kedua, Anda harus menambahkan suggesterName ke permintaan. Jika pengusul tidak ditentukan dalam indeks, maka panggilan untuk pelengkapan otomatis atau saran akan gagal.

POST /indexes/myxboxgames/docs/autocomplete?search&api-version=2026-04-01
{
  "search": "minecraf",
  "suggesterName": "sg"
}

Kode Sampel

Untuk mempelajari cara menggunakan paket saran sumber terbuka untuk penyelesaian istilah parsial di aplikasi klien, lihat Menjelajahi kode pencarian .NET.

Langkah selanjutnya

Pelajari selengkapnya tentang rumusan permintaan.