ai-agents-for-beginners

Guide för att ställa in Azure AI Search

Denna guide hjälper dig att ställa in Azure AI Search via Azure-portalen. Följ stegen nedan för att skapa och konfigurera din Azure AI Search-tjänst.

Förutsättningar

Innan du börjar, se till att du har följande:

Steg 1: Skapa ett Azure Storage-konto

  1. Följ instruktionen Skapa ett Azure Storage-konto för att skapa ett nytt Azure Storage-konto. OBS: Se till att typen av Storage-konto är Standard General Purpose V2.

Steg 2: Skapa en Azure AI Search-tjänst

  1. Logga in på Azure-portalen.
  2. Klicka på Skapa en resurs i den vänstra navigeringspanelen.
  3. Skriv “Azure AI Search” i sökrutan och välj Azure AI Search från resultatlistan.
  4. Klicka på Skapa-knappen.
  5. I fliken Grundläggande anger du följande information:
    • Prenumeration: Välj din Azure-prenumeration.
    • Resursgrupp: Skapa en ny resursgrupp eller välj en befintlig.
    • Resursnamn: Ange ett unikt namn för din söktjänst.
    • Region: Välj den region som är närmast dina användare.
    • Prissättningsnivå: Välj en prissättningsnivå som passar dina behov. Du kan börja med Gratisnivån för testning.
  6. Klicka på Granska + skapa.
  7. Granska inställningarna och klicka på Skapa för att skapa söktjänsten.
  1. När distributionen är klar, gå till din söktjänst i Azure-portalen.
  2. Kopiera URL:en i översiktspanelen för söktjänsten. Den bör se ut som https://<service-name>.search.windows.net.
  3. (Rekommenderat) Aktivera nyckelfri åtkomst med Microsoft Entra ID (RBAC) som visas i Steg 4 nedan — ingen nyckel behövs. Exemplen i denna guide skapar/uppdaterar index och laddar upp dokument, vilket kräver rollerna Search Service Contributor och Search Index Data Contributor (eller, vid nyckelbaserad autentisering, primär administratörsnyckel — ej frågenyckel). Endast om du inte kan använda RBAC, öppna Inställningar > Nycklar och kopiera primär administratörsnyckel.
  4. Följ stegen i Quickstart-guiden för att skapa ett index, ladda upp data och utföra en sökning.

Steg 4: Använd Azure AI Search-verktyg

Azure AI Search integreras med olika verktyg för att förbättra dina sökfunktioner. Du kan använda Azure CLI, Python SDK, .NET SDK och andra verktyg för avancerade konfigurationer och operationer.

Använda Azure CLI

  1. Installera Azure CLI genom att följa instruktionerna på Installera Azure CLI.
  2. Logga in i Azure CLI med kommandot:

    az login
    
  3. (Rekommenderat) Aktivera nyckelfri åtkomst med Microsoft Entra ID (RBAC):

     az search service update --name <service-name> --resource-group <resource-group> --auth-options aadOrApiKey
     az role assignment create --assignee <your-user-or-principal-id> --role "Search Service Contributor" --scope $(az search service show -g <resource-group> -n <service-name> --query id -o tsv)
     az role assignment create --assignee <your-user-or-principal-id> --role "Search Index Data Contributor" --scope $(az search service show -g <resource-group> -n <service-name> --query id -o tsv)
     # az search service show has no "endpoint" field; build the URL from the service name.
     export AZURE_SEARCH_SERVICE_ENDPOINT="https://<service-name>.search.windows.net"
    

    Med RBAC aktiverat autentiserar Python och .NET SDK-exemplen nedan med DefaultAzureCredential, vilket använder din az login-session under lokal utveckling — ingen administratörsnyckel behövs. Se Anslut till Azure AI Search med roller.

  4. (Reservlösning) Nyckelbaserad autentisering — endast om du inte kan använda RBAC, spara administratörsnyckeln också:

Spara både endpoint och API-nyckel för Azure AI Search-instansen som miljövariabler.

Använda Python SDK

  1. Installera Azure Cognitive Search-klientbiblioteket och Azure Identity för Python:

    pip install azure-search-documents azure-identity
    
  2. Använd följande Python-kod för att skapa ett index och ladda upp dokument:

     import os
     from azure.identity import DefaultAzureCredential
     from azure.search.documents import SearchClient
     from azure.search.documents.indexes import SearchIndexClient
     from azure.search.documents.indexes.models import SearchIndex, SimpleField, edm
    
     service_endpoint = os.getenv("AZURE_SEARCH_SERVICE_ENDPOINT")
     index_name = "sample-index"
    
     # Keyless (recommended): uses your `az login` identity via Entra ID RBAC.
     # Requires the "Search Service Contributor" and "Search Index Data Contributor" roles.
     credential = DefaultAzureCredential()
     # Fallback (key-based auth):
     # from azure.core.credentials import AzureKeyCredential
     # credential = AzureKeyCredential(os.getenv("AZURE_SEARCH_API_KEY"))
     index_client = SearchIndexClient(service_endpoint, credential)
    
     fields = [
         SimpleField(name="id", type=edm.String, key=True),
         SimpleField(name="content", type=edm.String, searchable=True),
     ]
    
     index = SearchIndex(name=index_name, fields=fields)
    
     index_client.create_index(index)
    
     search_client = SearchClient(service_endpoint, index_name, credential)
    
     documents = [
         {"id": "1", "content": "Hello world"},
         {"id": "2", "content": "Azure Cognitive Search"}
     ]
    
     search_client.upload_documents(documents)
    

Använda .NET SDK

  1. Kör följande kommando för att skapa ett index och ladda upp dokument:

     dotnet run ./AzureSearch.cs
    

    .NET-exemplet nedan använder DefaultAzureCredential, som kan använda din Azure CLI-inloggning från az login under lokal utveckling.

  2. Här är .NET-koden för AzureSearch.cs:

     #:package Azure.Search.Documents@11.*
     #:package Azure.Identity@1.21.0
     #:property PublishAot=false
    
     using Azure;
     using Azure.Identity;
     using Azure.Search.Documents;
     using Azure.Search.Documents.Indexes;
     using Azure.Search.Documents.Indexes.Models;
    
     var serviceEndpoint = new Uri(Environment.GetEnvironmentVariable("AZURE_SEARCH_SERVICE_ENDPOINT")!);
     var indexName = "sample-index";
    
     // Keyless (recommended): uses your `az login` identity via Entra ID RBAC.
     // Requires the "Search Service Contributor" and "Search Index Data Contributor" roles.
     var credential = new DefaultAzureCredential();
     // Fallback (key-based auth): the `using Azure;` directive above already imports
     // AzureKeyCredential; replace the credential line above with:
     // var credential = new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_SEARCH_API_KEY")!);
     var indexClient = new SearchIndexClient(serviceEndpoint, credential);
    
     var fields = new List<SearchField>()
     {
         new SimpleField("id", SearchFieldDataType.String) { IsKey = true },
         new SearchableField("content")
     };
    
     var index = new SearchIndex(name: indexName, fields: fields);
    
     var response = await indexClient.CreateOrUpdateIndexAsync(index);
     Console.WriteLine($"Index '{response.Value.Name}' ready.");
    
     var searchClient = new SearchClient(serviceEndpoint, indexName, credential);
    
     var documents = new[]
     {
         new { id = "1", content = "Hello world" },
         new { id = "2", content = "Azure Cognitive Search" }
     };
    
     var result = await searchClient.UploadDocumentsAsync(documents);
     Console.WriteLine($"Uploaded {result.Value.Results.Count} documents to index '{response.Value.Name}'.");
    

För mer detaljerad information, se följande dokumentation:

Slutsats

Du har framgångsrikt ställt in Azure AI Search med hjälp av Azure-portalen och integrerade verktyg. Du kan nu utforska mer avancerade funktioner och möjligheter i Azure AI Search för att förbättra dina söklösningar.

För ytterligare hjälp, besök Azure Cognitive Search dokumentation.


Ansvarsfriskrivning: Detta dokument har översatts med hjälp av AI-översättningstjänsten Co-op Translator. Även om vi strävar efter noggrannhet, var vänlig notera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår till följd av användningen av denna översättning.