Visual Studio Code-bővítmény Azure Cognitive Search (kivezetve)

A korábban előzetes verzióban elérhető Azure Cognitive Search Visual Studio Code-bővítménye nem váltott előre az általános elérhetőségre, és 2022. november 1-étől kivezeti.

Bár a bővítmény már nem érhető el Azure Marketplace, a kód nyílt forráskódú a címenhttps://github.com/microsoft/vscode-azurecognitivesearch. Az eszközt saját használatra klónozhatja és módosíthatja.

Ha a bővítményt használja, ez a cikk azt ismerteti, hogyan alakíthat ki interaktívan REST API-kéréseket a Azure Cognitive Search REST API-k használatával.

Előfeltételek

A bővítmény használatához az alábbi szolgáltatásokra és eszközökre van szükség

A bővítmény telepítése

Tekintse meg a GitHubon található Readme webhelyet.

Csatlakozás az előfizetéshez

Indítsa el a Visual Studio COde-t.

Válassza a Bejelentkezés az Azure-ba... lehetőséget, és jelentkezzen be az Azure-fiókjába.

Meg kell jelennie az előfizetéseinek. A következő képernyőképen az előfizetés neve "Visual Studio Enterprise", és egy "azsearch-service" nevű keresési szolgáltatást tartalmaz.

VS Code Azure-előfizetések előfizetései

A megjelenített előfizetések korlátozásához nyissa meg a parancskatalógust (Ctrl+Shift+P vagy Cmd+Shift+P), és keresse meg az Azure-t vagy az Előfizetések kiválasztása lehetőséget. Az Azure-fiókba való bejelentkezéshez és az azure-fiókból való kijelentkezéshez is elérhetők parancsok.

A keresési szolgáltatás kibontásakor az egyes Cognitive Search-elemek faelemei jelennek meg: indexek, adatforrások, indexelők, képességcsoportok, szinonimatérképek és aliasok.

VS Code Azure search tree

Ezek a faelemek kibonthatók a keresési szolgáltatásban található erőforrások megjelenítéséhez.

1 – Index létrehozása

Index létrehozásához használja az Index létrehozása REST API-t.

A VS Code-bővítménysel csak a kérés törzse miatt kell aggódnia. Ehhez a rövid útmutatóhoz egy indexdefiníciót és a megfelelő dokumentumokat biztosítunk.

Index definíciója

Az alábbi indexdefiníció egy fiktív szállodákra vonatkozó mintaséma.

A fields gyűjtemény meghatározza a keresési indexben lévő dokumentumok struktúráját. Minden mező adattípussal és számos további attribútummal rendelkezik, amelyek meghatározzák a mező használhatóságát.

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

Új index létrehozásához kattintson a jobb gombbal az Indexek elemre, majd válassza az Új index létrehozása lehetőséget. Ekkor megjelenik egy hasonló indexes-new-28c972f661.azsindex nevű szerkesztő.

Illessze be az indexdefiníciót felülről az ablakba. Mentse a fájlt, és válassza a Feltöltés lehetőséget, amikor a rendszer kéri, ha frissíteni szeretné az indexet. Ez a lépés létrehozza az indexet, és hozzáadja a bal oldali fanézethez.

Index létrehozásának GIF-fájlja

Ha probléma van az indexdefinícióval, az alábbihoz hasonló hibaüzenetet kell látnia.

Index létrehozása hibaüzenet

Hiba esetén javítsa ki a problémát, és mentse újra a fájlt.

2 – Dokumentumok betöltése

A REST API-ban az index létrehozása és az index feltöltése külön lépések. A Azure Cognitive Search az index tartalmazza az összes kereshető adatot. Ebben a rövid útmutatóban az adatok JSON-dokumentumokként lesznek megadva. Ehhez a feladathoz a Dokumentumok hozzáadása, frissítése vagy törlése REST API használható.

Új dokumentumok hozzáadása az indexhez:

  1. Bontsa ki a hotels-quickstart létrehozott indexet. Kattintson a jobb gombbal a Dokumentumok elemre , és válassza az Új dokumentum létrehozása lehetőséget.

    Dokumentum létrehozása

  2. Meg kell jelennie egy JSON-szerkesztőnek, amely az index sémáját kikövetkesztette.

    JSON-dokumentum létrehozása

  3. Illessze be az alábbi JSON-fájlba, majd mentse a fájlt. A rendszer kéri, hogy erősítse meg a módosításokat. A módosítások mentéséhez válassza a Feltöltés lehetőséget.

    {
        "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. Ismételje meg ezt a folyamatot a fennmaradó három dokumentum esetében:

    2. dokumentum:

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

    3. dokumentum:

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

    4. dokumentum:

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

Ekkor mind a négy dokumentumnak meg kell jelennie a dokumentumok szakaszban.

állapot az összes dokumentum feltöltése után

3 – Keresés az indexekben

Most, hogy az index tartalmaz tartalmat, lekérdezéseket adhat ki a Search Documents REST API használatával:

  1. Kattintson a jobb gombbal a keresni kívánt indexre, és válassza a Keresés lehetőséget. Ez a lépés megnyitja a szerkesztőt, amelynek neve hasonló a fájlhoz sandbox-b946dcda48.azs: .

    a bővítmény keresési nézete

  2. A rendszer automatikusan kitölt egy egyszerű lekérdezést. A lekérdezés elküldéséhez nyomja le a Ctrl+Alt+R vagy a Cmd+Alt+R billentyűkombinációt. Az eredmények egy bal oldali ablakban jelennek meg.

    keresési eredmények a bővítményben

Példa a lekérdezésekre

Próbálkozzon néhány további lekérdezési példával, hogy jobban átérzhesse a szintaxist. Az alábbiakban négy további lekérdezést próbálhat ki. Több lekérdezést is hozzáadhat ugyanahhoz a szerkesztőhöz. A Ctrl+Alt+R vagy Cmd+Alt+R billentyűkombináció lenyomásakor a kurzor által megadott vonal határozza meg, hogy melyik lekérdezés lesz elküldve.

lekérdezések és eredmények egymás mellett

Az első lekérdezésben csak bizonyos mezőket keresünk boutiqueselect . Ez az ajánlott eljárás, ha csak select a szükséges mezőkre van szükség, mert a felesleges adatok visszakérése késést adhat a lekérdezésekhez. A lekérdezés azt is beállítja $count=true , hogy a keresési eredményekkel együtt adja vissza a találatok teljes számát.

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

A következő lekérdezésben megadjuk a keresési kifejezést wifi , és egy szűrőt is belefoglalunk, amely csak akkor ad vissza találatokat, ha az állapot megegyezik a következővel 'FL'. Az eredményeket a szálloda is rendezi Rating.

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

Ezután a keresés egyetlen kereshető mezőre korlátozódik a searchFields paraméter használatával. Ez nagyszerű lehetőség arra, hogy hatékonyabbá tegye a lekérdezést, ha tudja, hogy csak bizonyos mezők egyezése érdekli.

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

Egy másik gyakori lehetőség, hogy belefoglalja a lekérdezésbe a következőt facets: . Az aspektusok lehetővé teszik szűrők összeállítását az alkalmazáson, így a felhasználók könnyebben megismerhetik, hogy milyen értékekre szűrhetnek.

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

Index megnyitása a portálon

Ha meg szeretné tekinteni a keresőszolgáltatást a portálon, kattintson a jobb gombbal a keresési szolgáltatás nevére, és válassza a Megnyitás a portálon lehetőséget.

Az erőforrások eltávolítása

Ha a saját előfizetésében dolgozik, érdemes az egyes projektek végén eldöntenie, hogy szüksége lesz-e még a létrehozott erőforrásokra. A továbbra is futó erőforrások költségekkel járhatnak. Az erőforrásokat törölheti egyesével, vagy az erőforráscsoport törlésével eltávolíthatja a benne lévő összes erőforrást is.

A portálon található erőforrásokat a bal oldali navigációs panel Minden erőforrás vagy Erőforráscsoport hivatkozásával keresheti meg és kezelheti.

Ha ingyenes szolgáltatást használ, ne feledje, hogy három indexre, indexelőre és adatforrásra korlátozódik. A portálon törölheti az egyes elemeket, hogy a korlát alatt maradjon.

Következő lépések

Most, hogy már tudja, hogyan végezheti el az alapvető feladatokat, továbbléphet további REST API-hívásokkal a fejlettebb funkciókhoz, például az indexelőkhöz, vagy beállíthat egy bővítési folyamatot , amely tartalomátalakításokat ad hozzá az indexeléshez. A következő lépéshez a következő hivatkozást javasoljuk: