ekstensi Visual Studio Code untuk Azure Cognitive Search (dihentikan)

Ekstensi Visual Studio Code untuk Azure Cognitive Search, sebelumnya dalam pratinjau, tidak bergerak maju ke ketersediaan umum dan sekarang dihentikan per 1 November 2022.

Meskipun ekstensi tidak lagi tersedia di Marketplace Azure, kode bersumber terbuka di https://github.com/microsoft/vscode-azurecognitivesearch. Anda dapat mengkloning dan memodifikasi alat untuk penggunaan Anda sendiri.

Jika Anda menggunakan ekstensi, artikel ini menjelaskan cara merumuskan permintaan REST API secara interaktif menggunakan REST API Azure Cognitive Search.

Prasyarat

Layanan dan alat berikut diperlukan untuk menggunakan ekstensi

Menginstal ekstensi

Lihat Readme di Github.

Menyambukan ke langganan Anda

Mulai Visual Studio Code.

Pilih Masuk ke Azure... dan masuk ke Akun Azure Anda.

Anda akan melihat langganan Anda. Dalam cuplikan layar berikut, nama langganan adalah "Visual Studio Enterprise" dan berisi satu layanan pencarian bernama "azsearch-service".

Visual Studio Code AzureLangganan

Untuk membatasi langganan yang ditampilkan, buka palet perintah (Ctrl+Shift+P atau Cmd+Shift+P) dan cari Azure atau Pilih Langganan. Ada juga perintah yang tersedia untuk masuk dan keluar dari akun Azure Anda.

Saat memperluas layanan pencarian, Anda akan melihat item pohon untuk setiap item Cognitive Search: indeks, sumber data, pengindeks, set keterampilan, peta sinonim, dan alias.

Pohon pencarian Vs Code Azure

Item pohon ini dapat diperluas untuk menampilkan sumber daya apa pun yang Anda miliki di layanan pencarian Anda.

1 - Membuat indeks

Untuk membuat indeks, gunakan Rest API Buat Indeks.

Dengan ekstensi Visual Studio Code, Anda hanya perlu memikirkan tentang isi permintaan. Untuk mulai cepat ini, kami menyediakan sampel definisi indeks dan dokumen yang sesuai.

Definisi indeks

Definisi indeks di bawah ini adalah skema sampel untuk hotel fiktif.

Koleksi fields menentukan struktur dokumen dalam indeks pencarian. Setiap bidang memiliki jenis data dan sejumlah atribut tambahan yang menentukan cara penggunaan bidang.

{
    "name": "hotels-quickstart",
    "fields": [
        {
            "name": "HotelId",
            "type": "Edm.String",
            "key": true,
            "filterable": true
        },
        {
            "name": "HotelName",
            "type": "Edm.String",
            "searchable": true,
            "filterable": false,
            "sortable": true,
            "facetable": false
        },
        {
            "name": "Description",
            "type": "Edm.String",
            "searchable": true,
            "filterable": false,
            "sortable": false,
            "facetable": false,
            "analyzer": "en.lucene"
        },
        {
            "name": "Description_fr",
            "type": "Edm.String",
            "searchable": true,
            "filterable": false,
            "sortable": false,
            "facetable": false,
            "analyzer": "fr.lucene"
        },
        {
            "name": "Category",
            "type": "Edm.String",
            "searchable": true,
            "filterable": true,
            "sortable": true,
            "facetable": true
        },
        {
            "name": "Tags",
            "type": "Collection(Edm.String)",
            "searchable": true,
            "filterable": true,
            "sortable": false,
            "facetable": true
        },
        {
            "name": "ParkingIncluded",
            "type": "Edm.Boolean",
            "filterable": true,
            "sortable": true,
            "facetable": true
        },
        {
            "name": "LastRenovationDate",
            "type": "Edm.DateTimeOffset",
            "filterable": true,
            "sortable": true,
            "facetable": true
        },
        {
            "name": "Rating",
            "type": "Edm.Double",
            "filterable": true,
            "sortable": true,
            "facetable": true
        },
        {
            "name": "Address",
            "type": "Edm.ComplexType",
            "fields": [
                {
                    "name": "StreetAddress",
                    "type": "Edm.String",
                    "filterable": false,
                    "sortable": false,
                    "facetable": false,
                    "searchable": true
                },
                {
                    "name": "City",
                    "type": "Edm.String",
                    "searchable": true,
                    "filterable": true,
                    "sortable": true,
                    "facetable": true
                },
                {
                    "name": "StateProvince",
                    "type": "Edm.String",
                    "searchable": true,
                    "filterable": true,
                    "sortable": true,
                    "facetable": true
                },
                {
                    "name": "PostalCode",
                    "type": "Edm.String",
                    "searchable": true,
                    "filterable": true,
                    "sortable": true,
                    "facetable": true
                },
                {
                    "name": "Country",
                    "type": "Edm.String",
                    "searchable": true,
                    "filterable": true,
                    "sortable": true,
                    "facetable": true
                }
            ]
        }
    ],
    "suggesters": [
        {
            "name": "sg",
            "searchMode": "analyzingInfixMatching",
            "sourceFields": [
                "HotelName"
            ]
        }
    ]
}

Untuk membuat indeks baru, klik kanan pada Indeks lalu pilih Buat indeks baru. Editor dengan nama yang mirip dengan indexes-new-28c972f661.azsindex akan muncul.

Tempelkan definisi indeks dari atas ke jendela. Simpan file dan pilih Unggah saat diminta jika Anda ingin memperbarui indeks. Langkah ini membuat indeks dan menambahkannya ke tampilan pohon di sebelah kiri.

Gif proses membuat indeks

Jika ada masalah dengan definisi indeks Anda, Anda akan melihat pesan kesalahan yang mirip dengan yang di bawah ini.

Membuat pesan kesalahan indeks

Jika terjadi kesalahan, perbaiki masalah dan simpan ulang file.

2 - Mengunggah dokumen

Di REST API, membuat indeks dan mengisi indeks adalah langkah terpisah. Dalam Azure Cognitive Search, indeks berisi semua data yang dapat dicari. Dalam mulai cepat ini, data disediakan sebagai dokumen JSON. REST API Tambahkan, Perbarui, atau Hapus Dokumen digunakan untuk tugas ini.

Untuk menambahkan dokumen baru ke indeks:

  1. Perluas indeks hotels-quickstart yang Anda buat. Klik kanan pada Dokumen dan pilih Buat dokumen baru.

    Membuat dokumen

  2. Anda akan melihat editor JSON yang telah menyimpulkan skema indeks Anda.

    Membuat json dokumen

  3. Tempelkan di JSON di bawah ini lalu simpan file. Perintah meminta Anda untuk mengonfirmasi perubahan Anda. Pilih Unggah untuk menyimpan perubahan.

    {
        "HotelId": "1",
        "HotelName": "Secret Point Motel",
        "Description": "The hotel is ideally located on the main commercial artery of the city in the heart of New York. A few minutes away is Time's Square and the historic centre of the city, as well as other places of interest that make New York one of America's most attractive and cosmopolitan cities.",
        "Category": "Boutique",
        "Tags": [ "pool", "air conditioning", "concierge" ],
        "ParkingIncluded": false,
        "LastRenovationDate": "1970-01-18T00:00:00Z",
        "Rating": 3.60,
        "Address": {
            "StreetAddress": "677 5th Ave",
            "City": "New York",
            "StateProvince": "NY",
            "PostalCode": "10022",
            "Country": "USA"
        } 
    }
    
  4. Ulangi proses ini untuk tiga dokumen yang tersisa:

    Dokumen 2:

    {
        "HotelId": "2",
        "HotelName": "Twin Dome Motel",
        "Description": "The hotel is situated in a  nineteenth century plaza, which has been expanded and renovated to the highest architectural standards to create a modern, functional and first-class hotel in which art and unique historical elements coexist with the most modern comforts.",
        "Category": "Boutique",
        "Tags": [ "pool", "free wifi", "concierge" ],
        "ParkingIncluded": false,
        "LastRenovationDate": "1979-02-18T00:00:00Z",
        "Rating": 3.60,
        "Address": {
            "StreetAddress": "140 University Town Center Dr",
            "City": "Sarasota",
            "StateProvince": "FL",
            "PostalCode": "34243",
            "Country": "USA"
        } 
    }
    

    Dokumen 3:

    {
        "HotelId": "3",
        "HotelName": "Triple Landscape Hotel",
        "Description": "The Hotel stands out for its gastronomic excellence under the management of William Dough, who advises on and oversees all of the Hotel’s restaurant services.",
        "Category": "Resort and Spa",
        "Tags": [ "air conditioning", "bar", "continental breakfast" ],
        "ParkingIncluded": true,
        "LastRenovationDate": "2015-09-20T00:00:00Z",
        "Rating": 4.80,
        "Address": {
            "StreetAddress": "3393 Peachtree Rd",
            "City": "Atlanta",
            "StateProvince": "GA",
            "PostalCode": "30326",
            "Country": "USA"
        } 
    }
    

    Dokumen 4:

    {
        "HotelId": "4",
        "HotelName": "Sublime Cliff Hotel",
        "Description": "Sublime Cliff Hotel is located in the heart of the historic center of Sublime in an extremely vibrant and lively area within short walking distance to the sites and landmarks of the city and is surrounded by the extraordinary beauty of churches, buildings, shops and monuments. Sublime Cliff is part of a lovingly restored 1800 palace.",
        "Category": "Boutique",
        "Tags": [ "concierge", "view", "24-hour front desk service" ],
        "ParkingIncluded": true,
        "LastRenovationDate": "1960-02-06T00:00:00Z",
        "Rating": 4.60,
        "Address": {
            "StreetAddress": "7400 San Pedro Ave",
            "City": "San Antonio",
            "StateProvince": "TX",
            "PostalCode": "78216",
            "Country": "USA"
        }
    }
    

Pada titik ini, Anda akan melihat keempat dokumen yang tersedia di bagian dokumen.

status setelah mengunggah semua dokumen

3 - Mencari indeks

Sekarang setelah indeks berisi konten, Anda dapat mengeluarkan kueri menggunakan REST API Dokumen Pencarian:

  1. Klik kanan indeks yang ingin Anda cari dan pilih Cari. Langkah ini membuka editor dengan nama yang mirip sandbox-b946dcda48.azsdengan .

    tampilan pencarian ekstensi

  2. Kueri sederhana diisi otomatis. Tekan Ctrl+Alt+R atau Cmd+Alt+R untuk mengirim kueri. Anda akan melihat hasilnya muncul di jendela sebelah kiri.

    hasil pencarian dalam ekstensi

Contoh kueri

Coba beberapa contoh kueri lainnya untuk memahami sintaksnya. Terdapat empat kueri tambahan di bawah ini yang dapat Anda coba. Anda dapat menambahkan beberapa kueri ke penyunting yang sama. Saat Anda menekan Ctrl+Alt+R atau Cmd+Alt+R, garis kursor Anda menentukan kueri yang akan dikirimkan.

kueri dan hasil berdampingan

Dalam kueri pertama, kami mencari boutique dan select hanya bidang tertentu. Ada baiknya untuk select hanya bidang yang Anda butuhkan karena menarik kembali data yang tidak perlu dapat menambah latensi ke kueri Anda. Kueri juga mengatur $count=true untuk mengembalikan jumlah total hasil dengan hasil pencarian.

// Query example 1 - Search `boutique` with select and return count
search=boutique&$count=true&$select=HotelId,HotelName,Rating,Category

Dalam kueri berikutnya, kami menentukan istilah pencarian wifi dan juga menyertakan filter untuk hanya mengembalikan hasil dengan status yang sama dengan 'FL'. Hasilnya juga dipesan oleh Rating Hotel.

// Query example 2 - Search with filter, orderBy, select, and count
search=wifi&$filter=Address/StateProvince eq 'FL'&$select=HotelId,HotelName,Rating,Address/StateProvince&$orderby=Rating desc

Selanjutnya, pencarian dibatasi untuk satu bidang yang dapat dicari menggunakan parameter searchFields. Ini adalah opsi yang bagus untuk membuat kueri Anda lebih efisien jika Anda hanya tertarik pada kecocokan di bidang tertentu.

// Query example 3 - Limit searchFields
search=sublime cliff&$select=HotelId,HotelName,Rating&searchFields=HotelName

Opsi umum lain untuk disertakan dalam kueri adalah facets. Faset memungkinkan Anda membangun filter di aplikasi untuk memudahkan pengguna mengetahui nilai apa yang dapat mereka filter.

// Query example 4 - Take the top two results, and show only HotelName and Category in the results
search=*&$select=HotelId,HotelName,Rating&searchFields=HotelName&facet=Category

Membuka indeks di portal

Jika Anda ingin melihat layanan pencarian di portal, klik kanan nama layanan pencarian dan pilih Buka di Portal.

Membersihkan sumber daya

Saat bekerja dengan langganan Anda sendiri, sebaiknya identifikasi apakah Anda masih membutuhkan sumber daya yang Anda buat di akhir proyek. Sumber daya yang dibiarkan beroperasi dapat dikenakan biaya. Anda dapat menghapus sumber daya satu per satu atau menghapus grup sumber daya untuk menghapus seluruh set sumber daya.

Anda dapat menemukan dan mengelola sumber daya di portal, menggunakan tautan Semua sumber daya atau Grup sumber daya di panel navigasi kiri.

Jika menggunakan layanan gratis, ingatlah bahwa Anda dibatasi pada tiga indeks, pengindeks, dan sumber data. Anda dapat menghapus item individu di portal agar tetap berada dalam batasan.

Langkah berikutnya

Sekarang setelah Anda tahu cara melakukan tugas inti, Anda dapat melanjutkan panggilan REST API tambahan untuk fitur yang lebih canggih, seperti pengindeks atau menyiapkan alur pengayaan yang menambahkan transformasi konten ke pengindeksan. Untuk langkah Anda berikutnya, kami merekomendasikan tautan berikut: