Arbeta med Azure Cognitive Search med hjälp av Visual Studio Code-tillägget (förhandsversion – tillbakadragen)

Viktigt

Visual Studio Code-tillägget för Azure Cognitive Search introducerades som en offentlig förhandsversionsfunktion under kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure. Det har nu upphört.

Om du har en befintlig installation av Visual Studio Code-tillägget för Azure Cognitive Search kan du fortsätta att använda det, men det uppdateras inte längre och det är inte säkert att det fungerar med framtida versioner av Azure Cognitive Search.

Den här artikeln är avsedd för aktuella användare av tillägget.

Förutsättningar

Ansluta till din prenumeration

Välj Logga in på Azure... och logga in på ditt Azure-konto.

Du bör se dina prenumerationer. I följande skärmbild är prenumerationsnamnet "Visual Studio Enterprise" och innehåller en söktjänst med namnet "azsearch-service".

VS Code Azure-prenumerationer prenumerationer

Om du vill begränsa vilka prenumerationer som visas öppnar du kommandopaletten (Ctrl+Skift+P eller Cmd+Skift+P) och söker efter Azure eller Välj prenumerationer. Det finns även kommandon för att logga in och ut från ditt Azure-konto.

När du expanderar söktjänsten visas trädobjekt för varje Cognitive Search-objekt: index, datakällor, indexerare, kompetensuppsättningar, synonymkartor och alias.

VS Code Azure search tree

Dessa trädobjekt kan utökas för att visa alla resurser som du har i söktjänsten.

1 – Skapa ett index

För att komma igång med Azure Cognitive Search måste du först skapa ett sökindex. Detta görs med hjälp av REST-API:et För att skapa index.

Med VS Code-tillägget behöver du bara bekymra dig om brödtexten i begäran. I den här snabbstarten tillhandahåller vi en exempelindexdefinition och motsvarande dokument.

Indexdefinition

Indexdefinitionen nedan är ett exempelschema för fiktiva hotell.

Samlingen fields definierar strukturen för dokument i sökindexet. Varje fält har en datatyp och ett antal ytterligare attribut som avgör hur fältet kan användas.

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

Om du vill skapa ett nytt index högerklickar du på Index och väljer sedan Skapa nytt index. Ett redigeringsprogram med ett namn som liknar indexes-new-28c972f661.azsindex visas.

Klistra in indexdefinitionen ovanifrån i fönstret. Spara filen och välj Ladda upp när du tillfrågas om du vill uppdatera indexet. Det här steget skapar indexet och lägger till det i trädvyn till vänster.

Gif för att skapa ett index

Om det är problem med indexdefinitionen bör du se ett felmeddelande som liknar det nedan.

Felmeddelande om att skapa index

Om ett fel inträffar löser du problemet och sparar filen på ett sätt.

2 – Läs in dokument

I REST-API:et är det separata steg att skapa indexet och fylla i indexet. I Azure Cognitive Search innehåller indexet alla sökbara data. I den här snabbstarten tillhandahålls data som JSON-dokument. REST-API:et Lägg till, Uppdatera eller Ta bort dokument används för den här uppgiften.

Så här lägger du till nya dokument i indexet:

  1. Expandera indexet hotels-quickstart som du skapade. Högerklicka på Dokument och välj Skapa nytt dokument.

    Skapa ett dokument

  2. Du bör se en JSON-redigerare som har härledt schemat för ditt index.

    Skapa en dokument-json

  3. Klistra in JSON nedan och spara sedan filen. En uppmaning uppmanar dig att bekräfta ändringarna. Välj Ladda upp för att spara ändringarna.

    {
        "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. Upprepa den här processen för de tre återstående dokumenten:

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

Nu bör du se alla fyra dokument som är tillgängliga i dokumentavsnittet.

status när alla dokument har laddats upp

3 – Söka i ett index

Nu när indexet innehåller innehåll kan du utfärda frågor med hjälp av REST API för sökdokument:

  1. Högerklicka på det index som du vill söka efter och välj Sök. Det här steget öppnar en redigerare med ett namn som liknar sandbox-b946dcda48.azs.

    sökvy över tillägget

  2. En enkel fråga fylls i automatiskt. Tryck på Ctrl+Alt+R eller Cmd+Alt+R för att skicka frågan. Resultatet visas i ett fönster till vänster.

    sökresultat i tillägg

Exempelfrågor

Prova några andra frågeexempel för att få en känsla för syntaxen. Det finns fyra ytterligare frågor nedan som du kan prova. Du kan lägga till flera frågor i samma redigerare. När du trycker på Ctrl+Alt+R eller Cmd+Alt+R avgör markören vilken fråga som ska skickas.

frågor och resultat sida vid sida

I den första frågan söker vi efter boutique och select endast vissa fält. Det är en bra idé att bara select använda de fält du behöver eftersom onödiga data kan ge längre svarstider i dina frågor. Frågan anger $count=true också för att returnera det totala antalet resultat med sökresultaten.

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

I nästa fråga anger vi söktermen wifi och inkluderar även ett filter för att endast returnera resultat där tillståndet är lika 'FL'med . Resultaten beställs också av hotellets 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ärefter är sökningen begränsad till ett enda sökbart fält med hjälp av parametern searchFields . Det här är ett bra alternativ för att göra frågan mer effektiv om du vet att du bara är intresserad av matchningar i vissa fält.

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

Ett annat vanligt alternativ att ta med i en fråga är facets. Med fasetter kan du bygga ut filter i din app så att användarna enkelt kan veta vilka värden de kan filtrera ned till.

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

Öppna index i portalen

Om du vill visa söktjänsten i portalen högerklickar du på namnet på söktjänsten och väljer Öppna i portalen.

Rensa resurser

När du arbetar i din egen prenumeration kan det dock vara klokt att i slutet av ett projekt kontrollera om du fortfarande behöver de resurser som du skapade. Resurser som fortsätter att köras kostar pengar. Du kan ta bort resurser individuellt eller ta bort resursgruppen om du vill ta bort hela uppsättningen resurser.

Du kan hitta och hantera resurser i portalen med hjälp av länken Alla resurser eller Resursgrupper i det vänstra navigeringsfönstret.

Om du använder en kostnadsfri tjänst bör du komma ihåg att du är begränsad till tre index, indexerare och datakällor. Du kan ta bort enskilda objekt i portalen för att hålla dig under gränsen.

Nästa steg

Nu när du vet hur du utför viktiga uppgifter kan du gå vidare med ytterligare REST API-anrop för mer avancerade funktioner, till exempel indexerare eller konfigurera en berikningspipeline som lägger till innehållstransformeringar i indexeringen. För nästa steg rekommenderar vi följande länk: