Dela via


Läsa in data i ett sökindex i Azure AI Search

Den här artikeln beskriver hur du importerar dokument till ett fördefinierat sökindex. I Azure AI Search skapas ett sökindex först med dataimport som följer som ett andra steg. Undantaget är importguider i portalen och indexeringspipelines, som skapar och läser in ett index i ett arbetsflöde.

Så här fungerar dataimport

En söktjänst accepterar JSON-dokument som överensstämmer med indexschemat. En söktjänst importerar och indexerar oformaterad text och vektorer i JSON, som används i fulltextsökning, vektorsökning, hybridsökning och kunskapsutvinningsscenarier.

  • Oformaterat textinnehåll kan hämtas från alfanumeriska fält i den externa datakällan, metadata som är användbara i sökscenarier eller berikat innehåll som skapats av en kompetensuppsättning (färdigheter kan extrahera eller härleda textbeskrivningar från bilder och ostrukturerat innehåll).

  • Vektorinnehåll är vektoriserat med hjälp av en extern inbäddningsmodell eller integrerad vektorisering med hjälp av Azure AI Search-funktioner som integreras med tillämpad AI.

Du kan förbereda dokumenten själv, men om innehållet finns i en datakälla som stöds kan du automatisera dokumenthämtning, JSON-serialisering och indexering genom att köra en indexerare eller använda en importguide.

När data har indexerats är indexets fysiska datastrukturer låsta. Mer information om vad som kan och inte kan ändras finns i Uppdatera och återskapa ett index.

Indexering är inte en bakgrundsprocess. En söktjänst balanserar indexering och frågearbetsbelastningar, men om frågefördröjningen är för hög kan du antingen lägga till kapacitet eller identifiera perioder med låg frågeaktivitet för att läsa in ett index.

Mer information finns i Strategier för dataimport.

Använda Azure Portal

I Azure-portalen använder du importguiderna för att skapa och läsa in index i ett sömlöst arbetsflöde. Om du vill läsa in ett befintligt index väljer du en alternativ metod.

  1. Logga in på Azure-portalen med ditt Azure-konto och leta reda på din söktjänst.

  2. På sidan Översikt väljer du Importera data eller Importera och vektorisera data i kommandofältet för att skapa och fylla i ett sökindex.

    Skärmbild av kommandot Importera data

    Du kan följa dessa länkar för att granska arbetsflödet: Snabbstart: Skapa ett Azure AI Search-index och snabbstart: Integrerad vektorisering.

  3. När guiden är klar använder du Sökutforskaren för att söka efter resultat.

Dricks

Importguiderna skapar och kör indexerare. Om indexerare redan har definierats kan du återställa och köra en indexerare från Azure-portalen, vilket är användbart om du lägger till fält stegvis. Återställning tvingar indexeraren att börja om och plocka upp alla fält från alla källdokument.

Använda REST-API:er

Dokument – Index är REST-API:et för att importera data till ett sökindex. REST-API:er är användbara för inledande proof-of-concept-testning, där du kan testa indexeringsarbetsflöden utan att behöva skriva mycket kod. Parametern @search.action avgör om dokument läggs till i sin helhet eller delvis när det gäller nya värden eller ersättningsvärden för specifika fält.

Snabbstart: Textsökning med REST förklarar stegen. Följande exempel är en modifierad version av exemplet. Det har trimmats för korthet och det första HotelId-värdet har ändrats för att undvika att skriva över ett befintligt dokument.

  1. Formulera ett POST-anrop som anger indexnamnet, slutpunkten "docs/index" och en begärandetext som innehåller parametern @search.action .

    POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/index?api-version=2024-07-01
    Content-Type: application/json   
    api-key: [admin key] 
    {
        "value": [
        {
        "@search.action": "upload",
        "HotelId": "1111",
        "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" ]
        },
        {
        "@search.action": "mergeOrUpload",
        "HotelId": "2",
        "HotelName": "Twin Dome Motel",
        "Description": "This is description is replacing the original one for this hotel. New and changed values overwrite the previous ones. In a comma-delimited list like Tags, be sure to provide the full list because there is no merging of values within the field itself.",
        "Category": "Boutique",
        "Tags": [ "pool", "free wifi", "concierge", "my first new tag", "my second new tag" ]
        }
      ]
    }
    
  2. Ange parametern @search.action till upload för att skapa eller skriva över ett dokument. Ange det till merge eller uploadOrMerge om du riktar in dig på uppdateringar av specifika fält i dokumentet. I föregående exempel visas båda åtgärderna.

    Åtgärd Effekt
    merge Uppdaterar ett dokument som redan finns och misslyckas med ett dokument som inte kan hittas. Sammanslagning ersätter befintliga värden. Därför bör du söka efter samlingsfält som innehåller flera värden, till exempel fält av typen Collection(Edm.String). Om ett tags fält till exempel börjar med värdet ["budget"] och du kör en sammanslagning med ["economy", "pool"]är ["economy", "pool"]det slutliga värdet för fältet tags . Det blir det inte ["budget", "economy", "pool"].
    mergeOrUpload Fungerar som sammanslagning om dokumentet finns och ladda upp om dokumentet är nytt. Det här är den vanligaste åtgärden för inkrementella uppdateringar.
    ladda upp Liknar en "upsert" där dokumentet infogas om det är nytt och uppdateras eller ersätts om det finns. Om dokumentet saknar värden som krävs för indexet är dokumentfältets värde inställt på null.
  3. Skicka begäran.

  4. Leta upp de dokument som du nyss lade till som ett valideringssteg:

    GET https://[service name].search.windows.net/indexes/hotel-sample-index/docs/1111?api-version=2024-07-01
    

När dokumentnyckeln eller ID:t är nytt blir null värdet för alla fält som är ospecificerade i dokumentet. För åtgärder i ett befintligt dokument ersätter uppdaterade värden de tidigare värdena. Alla fält som inte har angetts i en "sammanslagning" eller "mergeUpload" lämnas intakta i sökindexet.

Använda Azure SDK:er

Programmering finns i följande Azure SDK:er.

Azure SDK för .NET tillhandahåller följande API:er för enkla och massuppladdningar av dokument till ett index:

Det finns flera exempel som illustrerar indexering i samband med enkel och storskalig indexering:

Se även