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

Az Azure Cognitive Search Visual Studio Code-bővítménye, amely korábban előzetes verzióban jelent meg, nem vált általánosan elérhetőre, és 2022. november 1-jén megszűnik.

Bár a bővítmény már nem érhető el az Azure Marketplace-en, a kód nyílt forráskódú: https://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 bemutatja, hogyan alakíthat ki REST API-kéréseket interaktívan az 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-et.

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.

Látnia kell az előfizetéseit. Az alábbi 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

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 vannak parancsok.

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

VS-kód Azure keresési fa

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énnyel csak a kérés törzsével kell foglalkoznia. Ebben a rövid útmutatóban egy indexdefiníciót és a hozzájuk tartozó dokumentumokat biztosítunk.

Indexdefiníció

Az alábbi indexdefiníció egy fiktív szállodák mintául szolgáló sémája.

A fields gyűjtemény a keresési indexben lévő dokumentumok szerkezetét határozza meg. Minden mező adattípussal és számos további attribútummal rendelkezik, amelyek meghatározzák a mező használatá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 Indexekre , majd válassza az Új index létrehozása lehetőséget. Ekkor megjelenik egy hasonló nevű indexes-new-28c972f661.azsindex 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 fa nézethez.

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

Ha probléma merült fel az indexdefinícióval kapcsolatban, az alábbihoz hasonló hibaüzenet jelenik meg.

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. Az Azure Cognitive Searchben az index az összes kereshető adatot tartalmazza. 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-t használja a rendszer.

Új dokumentumok hozzáadása az indexhez:

  1. Bontsa ki az hotels-quickstart által 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. Látnia kell egy JSON-szerkesztőt, amely az index sémájára következtet.

    Dokumentum json 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"
        }
    }
    

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

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

3 – Keresés egy indexben

Most, hogy az index tartalmat tartalmaz, 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 egy sandbox-b946dcda48.azs nevű szerkesztőt nyit meg, amelynek neve ehhez hasonló.

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

  2. Egy egyszerű lekérdezés automatikusan van kitöltve. 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 bővítményben

Példa lekérdezések

Próbálkozzon néhány további lekérdezési példával, hogy jobban érezze magát a szintaxisban. Az alábbiakban négy további lekérdezést is kipróbálhat. 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 . Ajánlott csak a szükséges mezőket használni select , mert a szükségtelen adatok visszakérése késést okozhat a lekérdezésekben. A lekérdezés azt is beállítja $count=true , hogy a találatok teljes számát adja vissza a keresési eredményekkel együtt.

// 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 olyan eredményeket ad vissza, ahol az állapot egyenlő '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őkben lévő egyezések érdeklik.

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

Egy másik gyakori lehetőség, amelyet a lekérdezésbe érdemes belefoglalni, az facets. Az aspektusokkal szűrőket hozhat létre az alkalmazáson, hogy a felhasználók könnyebben tudják, milyen értékekre szűrhetnek le.

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

Erőforrások tisztítása

Amikor a saját előfizetésedben dolgozol, érdemes a projekt végén átgondolni, hogy szükséged van-e még a létrehozott erőforrásokra. A továbbra is futó erőforrások pénzbe kerülhetnek. 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.

Az erőforrások a portálon találhatók és kezelhetők a bal oldali navigációs panelen található Minden erőforrás vagy Erőforráscsoportok hivatkozással.

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, amelyek speciálisabb funkciókat, például indexelőket, vagy tartalomátalakításokat az indexeléshez növelő bővítési folyamatot biztosítanak. A következő lépéshez a következő hivatkozást javasoljuk: