Azure Bilişsel Arama için Visual Studio Code uzantısı (kullanımdan kaldırıldı)

Daha önce önizleme aşamasında olan Azure Bilişsel Arama için Visual Studio Code uzantısı genel kullanılabilirliğe geçmemiş ve 1 Kasım 2022 itibarıyla kullanımdan kaldırılmıştır.

Uzantı artık Azure Market'de kullanılamasa da kod konumunda https://github.com/microsoft/vscode-azurecognitivesearchaçık kaynaklıdır. Aracı kendi kullanımınız için kopyalayabilir ve değiştirebilirsiniz.

Uzantıyı kullanıyorsanız, bu makalede REST API isteklerinin Azure Bilişsel Arama REST API'lerini kullanarak etkileşimli olarak nasıl formüle açabileceğiniz açıklanmaktadır.

Ön koşullar

Uzantıyı kullanmak için aşağıdaki hizmetler ve araçlar gereklidir

Uzantıyı yükleme

Github'da BeniOku bölümüne bakın.

Aboneliğinize bağlanma

Visual Studio COde'yu başlatın.

Azure'da oturum aç... öğesini seçin ve Azure Hesabınızda oturum açın.

Aboneliklerinizi görmeniz gerekir. Aşağıdaki ekran görüntüsünde abonelik adı "Visual Studio Enterprise" şeklindedir ve "azsearch-service" adlı bir arama hizmeti içerir.

VS Code Azure abonelikleri

Görüntülenen abonelikleri sınırlamak için komut paletini (Ctrl+Shift+P veya Cmd+Shift+P) açın ve Azure'ı veya Abonelikleri Seçin'i arayın. Azure hesabınızda oturum açmak ve oturumu açmak için kullanabileceğiniz komutlar da vardır.

Arama hizmetini genişlettiğiniz zaman, her Bilişsel Arama öğesi için ağaç öğeleri görürsünüz: dizinler, veri kaynakları, dizin oluşturucular, beceri kümeleri, eş anlamlı eşlemeler ve diğer adlar.

VS Code Azure arama ağacı

Bu ağaç öğeleri, arama hizmetinizdeki tüm kaynakları gösterecek şekilde genişletilebilir.

1 - Dizin oluşturma

Dizin oluşturmak için Dizin Oluştur REST API'sini kullanın.

VS Code uzantısıyla yalnızca isteğin gövdesi hakkında endişelenmeniz gerekir. Bu hızlı başlangıçta örnek bir dizin tanımı ve ilgili belgeler sağlıyoruz.

Dizin tanımı

Aşağıdaki dizin tanımı kurgusal oteller için örnek bir şemadır.

Koleksiyon, fields arama dizinindeki belgelerin yapısını tanımlar. Her alanın bir veri türü ve alanın nasıl kullanılabileceğini belirleyen bir dizi ek özniteliği vardır.

{
    "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"
            ]
        }
    ]
}

Yeni dizin oluşturmak için Dizinler'e sağ tıklayın ve Yeni dizin oluştur'u seçin. adı benzer indexes-new-28c972f661.azsindex olan bir düzenleyici açılır.

Yukarıdaki dizin tanımını pencereye yapıştırın. Dosyayı kaydedin ve dizini güncelleştirmek istiyorsanız sorulduğunda Karşıya Yükle'yi seçin. Bu adım dizini oluşturur ve soldaki ağaç görünümüne ekler.

Dizin oluşturma gif'i

Dizin tanımınızla ilgili bir sorun varsa aşağıdakine benzer bir hata iletisi görmeniz gerekir.

Dizin oluşturma hata iletisi

Hata oluşursa sorunu düzeltin ve dosyayı yeniden kaydedin.

2 - Belgeleri yükleme

REST API'de dizini oluşturma ve dizini doldurma ayrı adımlardır. Azure Bilişsel Arama dizininde tüm aranabilir veriler bulunur. Bu hızlı başlangıçta veriler JSON belgeleri olarak sağlanır. Bu görev için Belge Ekle, Güncelleştir veya Sil REST API'sini kullanın.

Dizine yeni belgeler eklemek için:

  1. hotels-quickstart Oluşturduğunuz dizini genişletin. Belgeler'e sağ tıklayın ve Yeni belge oluştur'u seçin.

    Belge oluşturma

  2. Dizininizin şemasını çıkarmış bir JSON düzenleyicisi görmeniz gerekir.

    Belge json'u oluşturma

  3. Aşağıdaki JSON dosyasını yapıştırın ve dosyayı kaydedin. Değişikliklerinizi onaylamanızı isteyen bir istem. Değişiklikleri kaydetmek için Karşıya Yükle'yi seçin.

    {
        "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. Kalan üç belge için bu işlemi yineleyin:

    Belge 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"
        } 
    }
    

    Belge 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"
        } 
    }
    

    Belge 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"
        }
    }
    

Bu noktada, belgeler bölümünde dört belgenin de kullanılabilir olduğunu görmeniz gerekir.

tüm belgeleri karşıya yükledikten sonra durum

3 - Dizin arama

Artık dizin içerik içerdiğine göre, Arama Belgeleri REST API'sini kullanarak sorgular düzenleyebilirsiniz:

  1. Aramak istediğiniz dizine sağ tıklayın ve Ara'yı seçin. Bu adım, benzeri sandbox-b946dcda48.azsbir ada sahip bir düzenleyici açar.

    uzantının arama görünümü

  2. Basit bir sorgu otomatik olarak doldurulur. Sorguyu göndermek için Ctrl+Alt+R veya Cmd+Alt+R tuşlarına basın. Sonuçların soldaki bir pencerede belirdiğini görürsünüz.

    uzantıda arama sonuçları

Örnek sorgular

Söz dizimini görmek için birkaç sorgu örneğini daha deneyin. Aşağıda deneyebileceğiniz dört sorgu daha vardır. Aynı düzenleyiciye birden çok sorgu ekleyebilirsiniz. Ctrl+Alt+R veya Cmd+Alt+R tuşlarına bastığınızda, hangi sorgunun gönderileceğini imleciniz belirler.

sorgular ve sonuçlar yan yana

İlk sorguda yalnızca belirli alanları ararız boutiqueselect . Gereksiz verilerin geri çekilmesi sorgularınıza gecikme katabileceği için yalnızca select ihtiyacınız olan alanları kullanmak en iyi yöntemdir. Sorgu ayrıca arama sonuçlarıyla birlikte toplam sonuç sayısını döndürecek şekilde de ayarlar $count=true .

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

Bir sonraki sorguda arama terimini wifi belirtecek ve yalnızca durumunun değerine eşit olduğu sonuçları döndürmek için 'FL'bir filtre ekleyeceğiz. Sonuçlar otel tarafından Ratingda sıralanır.

// 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

Ardından, arama parametresi kullanılarak tek bir aranabilir alanla searchFields sınırlıdır. Bu, yalnızca belirli alanlardaki eşleşmelerle ilgilendiğinizi biliyorsanız sorgunuzu daha verimli hale getirmek için harika bir seçenektir.

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

Sorguya eklenecek bir diğer yaygın seçenek de şeklindedir facets. Modeller, kullanıcıların hangi değerlere göre filtre yapabileceklerini öğrenmesini kolaylaştırmak için uygulamanızda filtreler oluşturmanıza olanak tanır.

// 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

Portalda dizini açma

Arama hizmetinizi portalda görüntülemek isterseniz, arama hizmetinin adına sağ tıklayın ve Portalda Aç'ı seçin.

Kaynakları temizleme

Kendi aboneliğinizde çalışırken, projenin sonunda oluşturduğunuz kaynaklara hala ihtiyacınız olup olmadığını belirlemek iyi bir fikirdir. Çalışır durumda bırakılan kaynaklar maliyetlerin artmasına neden olabilir. Kaynakları teker teker silebilir veya tüm kaynak grubunu silerek kaynak kümesinin tamamını kaldırabilirsiniz.

Sol gezinti bölmesindeki Tüm kaynaklar veya Kaynak grupları bağlantısını kullanarak kaynakları portalda bulabilir ve yönetebilirsiniz.

Ücretsiz bir hizmet kullanıyorsanız üç dizin, dizin oluşturucu ve veri kaynağıyla sınırlı olduğunuzu unutmayın. Sınırın altında kalmak için portaldaki öğeleri tek tek silebilirsiniz.

Sonraki adımlar

Temel görevlerin nasıl gerçekleştirildiğini öğrendiğinize göre, dizin oluşturucular veya dizine içerik dönüştürmeleri ekleyen bir zenginleştirme işlem hattı ayarlama gibi daha gelişmiş özellikler için ek REST API çağrılarıyla ilerleyebilirsiniz. Sonraki adımınız için aşağıdaki bağlantıyı öneririz: