Rozšíření editoru Visual Studio Code pro Azure Cognitive Search (vyřazeno)

Rozšíření editoru Visual Studio Code pro Azure Cognitive Search, které bylo dříve ve verzi Preview, nepřesoužilo do obecné dostupnosti a od 1. listopadu 2022 je nyní vyřazeno z 1. listopadu 2022.

I když rozšíření už není v Azure Marketplace k dispozici, kód je opensourcový na adrese https://github.com/microsoft/vscode-azurecognitivesearch. Nástroj můžete klonovat a upravovat pro vlastní použití.

Pokud toto rozšíření používáte, tento článek vysvětluje, jak interaktivně formulovat požadavky rozhraní REST API pomocí Azure Cognitive Search rozhraní REST API.

Požadavky

K používání rozšíření se vyžadují následující služby a nástroje.

Instalace rozšíření

Podívejte se na Soubor Readme na GitHubu.

Připojení k vašemu předplatnému

Spusťte Visual Studio COde.

Vyberte Přihlásit se k Azure... a přihlaste se ke svému účtu Azure.

Měli byste vidět svá předplatná. Na následujícím snímku obrazovky je název předplatného "Visual Studio Enterprise" a obsahuje jednu vyhledávací službu s názvem "azsearch-service".

Předplatná Azure pro VS Code

Pokud chcete omezit počet zobrazených předplatných, otevřete paletu příkazů (Ctrl+Shift+P nebo Cmd+Shift+P) a vyhledejte Azure nebo Vybrat předplatná. K dispozici jsou také příkazy pro přihlášení a odhlášení z účtu Azure.

Když rozbalíte vyhledávací službu, uvidíte stromové položky pro každou položku služby Cognitive Search: indexy, zdroje dat, indexery, sady dovedností, mapy synonym a aliasy.

Strom služby Azure Search v editoru VS Code v Editoru VS Code

Tyto položky stromu je možné rozbalit a zobrazit všechny prostředky, které máte ve službě Search.

1. Vytvoření indexu

K vytvoření indexu použijte rozhraní REST API pro vytvoření indexu.

S rozšířením VS Code se potřebujete starat jenom o text požadavku. Pro účely tohoto rychlého startu poskytneme ukázkovou definici indexu a odpovídající dokumenty.

Definice indexu

Následující definice indexu představuje ukázkové schéma pro fiktivní hotely.

Kolekce fields definuje strukturu dokumentů v indexu vyhledávání. Každé pole má datový typ a řadu dalších atributů, které určují, jak se dá pole použí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"
            ]
        }
    ]
}

Pokud chcete vytvořit nový index, klikněte pravým tlačítkem na Indexy a pak vyberte Vytvořit nový index. Zobrazí se editor s podobným indexes-new-28c972f661.azsindex názvem.

Vložte definici indexu z výše uvedeného do okna. Uložte soubor a po zobrazení výzvy k aktualizaci indexu vyberte Nahrát . Tento krok vytvoří index a přidá ho do stromového zobrazení na levé straně.

Gif při vytváření indexu

Pokud dojde k problému s definicí indexu, měla by se zobrazit chybová zpráva podobná té, která je uvedená níže.

Chybová zpráva o vytvoření indexu

Pokud dojde k chybě, vyřešte problém a soubor znovu uložte.

2. Načtení dokumentů

V rozhraní REST API je vytvoření indexu a naplnění indexu samostatnými kroky. V Azure Cognitive Search obsahuje index všechna prohledávatelná data. V tomto rychlém startu se data poskytují jako dokumenty JSON. Pro tuto úlohu se používá rozhraní REST API Pro přidání, aktualizaci nebo odstranění dokumentů .

Přidání nových dokumentů do indexu:

  1. Rozbalte index, který hotels-quickstart jste vytvořili. Klikněte pravým tlačítkem na Documents (Dokumenty) a vyberte Create new document (Vytvořit nový dokument).

    Vytvoření dokumentu

  2. Měli byste vidět editor JSON, který odvodil schéma vašeho indexu.

    Vytvoření kódu JSON dokumentu

  3. Vložte níže uvedený kód JSON a pak soubor uložte. Zobrazí se výzva k potvrzení změn. Vyberte Nahrát a uložte změny.

    {
        "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. Tento postup opakujte pro tři zbývající dokumenty:

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

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

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

V tomto okamžiku byste měli vidět všechny čtyři dokumenty, které jsou k dispozici v části dokumenty.

stav po nahrání všech dokumentů

3. Prohledání indexu

Teď, když index obsahuje obsah, můžete vydávat dotazy pomocí rozhraní REST API pro vyhledávání dokumentů:

  1. Klikněte pravým tlačítkem na index, který chcete prohledat, a vyberte Hledat. Tento krok otevře editor s názvem podobným sandbox-b946dcda48.azsjako .

    zobrazení vyhledávání rozšíření

  2. Automaticky se vyplnit jednoduchý dotaz. Stisknutím kombinace kláves Ctrl+Alt+R nebo Cmd+Alt+R odešlete dotaz. Výsledky se zobrazí v okně vlevo.

    výsledky hledání v rozšíření

Ukázky dotazů

Vyzkoušejte několik dalších příkladů dotazů, abyste získali cit pro syntaxi. Níže najdete čtyři další dotazy, které můžete vyzkoušet. Do stejného editoru můžete přidat více dotazů. Když stisknete Kombinaci kláves Ctrl+Alt+R nebo Cmd+Alt+R, určuje řádek kurzoru, který dotaz se odešle.

dotazy a výsledky vedle sebe

V prvním dotazu prohledáme boutique jenom select určitá pole. Osvědčeným postupem je používat jenom select pole, která potřebujete, protože načtení nepotřebných dat může vašim dotazům přidat latenci. Dotaz také nastaví $count=true , aby vrátil celkový počet výsledků hledání.

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

V dalším dotazu zadáme hledaný termín wifi a zahrneme filtr, který vrátí jenom výsledky, ve kterých se stav rovná 'FL'. Výsledky objednává také hotel 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

Dále je hledání omezené na jedno prohledávatelné pole pomocí parametru searchFields . Je to skvělá možnost, která zefektivní dotaz, pokud víte, že vás zajímají jenom shody v určitých polích.

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

Další běžnou možností, jak do dotazu zahrnout, je facets. Omezující vlastnosti umožňují vytvořit v aplikaci filtry, aby uživatelé snadno věděli, jaké hodnoty můžou filtrovat.

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

Otevření indexu na portálu

Pokud chcete zobrazit vyhledávací službu na portálu, klikněte pravým tlačítkem na název vyhledávací služby a vyberte Otevřít na portálu.

Vyčištění prostředků

Pokud pracujete s vlastním předplatným, je vhodné vždy na konci projektu zkontrolovat, jestli budete vytvořené prostředky ještě potřebovat. Prostředky, které necháte běžet, vás stojí peníze. Můžete odstraňovat prostředky jednotlivě nebo odstraněním skupiny prostředků odstranit celou sadu prostředků najednou.

Prostředky můžete najít a spravovat na portálu pomocí odkazu Všechny prostředky nebo Skupiny prostředků v levém navigačním podokně.

Pokud používáte bezplatnou službu, nezapomeňte, že jste omezeni na tři indexy, indexery a zdroje dat. Jednotlivé položky na portálu můžete odstranit, abyste zůstali pod limitem.

Další kroky

Když teď víte, jak provádět základní úlohy, můžete přejít k dalším voláním rozhraní REST API pro pokročilejší funkce, jako jsou indexery nebo nastavení kanálu pro rozšiřování , který přidává transformace obsahu do indexování. Pro váš další krok doporučujeme následující odkaz: