Gegevens indexeren uit Azure SQL in Azure AI Search

In dit artikel leert u hoe u een indexeerfunctie configureert waarmee inhoud uit Azure SQL Database of een met Azure SQL beheerd exemplaar wordt geïmporteerd en hoe u deze doorzoekbaar maakt in Azure AI Search.

Dit artikel is een aanvulling op Het maken van een indexeerfunctie met informatie die specifiek is voor Azure SQL. Hierbij worden de REST API's gebruikt om een driedelige werkstroom te demonstreren die gebruikelijk is voor alle indexeerfuncties: een gegevensbron maken, een index maken, een indexeerfunctie maken.

Dit artikel bevat ook:

  • Een beschrijving van het beleid voor wijzigingsdetectie dat wordt ondersteund door de Azure SQL-indexeerfunctie, zodat u incrementele indexering kunt instellen.

  • Een sectie met veelgestelde vragen (FAQ) voor antwoorden op vragen over functiecompatibiliteit.

Notitie

Realtime gegevenssynchronisatie is niet mogelijk met een indexeerfunctie. Een indexeerfunctie kan uw tabel maximaal om de vijf minuten opnieuw indexeren. Als gegevensupdates eerder in de index moeten worden doorgevoerd, raden we u aan bijgewerkte rijen rechtstreeks te pushen.

Vereisten

  • Een Azure SQL-database met gegevens in één tabel of weergave, of een SQL Managed Instance met een openbaar eindpunt.

    Gebruik een tabel als uw gegevens groot zijn of als u incrementele indexering nodig hebt met behulp van de systeemeigen detectiemogelijkheden voor wijzigingen van SQL.

    Gebruik een weergave als u gegevens uit meerdere tabellen wilt samenvoegen. Grote weergaven zijn niet ideaal voor SQL-indexeerfunctie. Een tijdelijke oplossing is het maken van een nieuwe tabel voor opname in uw Azure AI Search-index. U kunt geïntegreerde sql-wijzigingen bijhouden gebruiken. Dit is eenvoudiger te implementeren dan High Water Mark.

  • Leesmachtigingen. Azure AI Search ondersteunt SQL Server-verificatie, waarbij de gebruikersnaam en het wachtwoord worden opgegeven in de verbindingsreeks. U kunt ook een beheerde identiteit instellen en Azure-rollen gebruiken.

Als u de voorbeelden in dit artikel wilt doorlopen, hebt u een REST-client nodig.

Andere methoden voor het maken van een Azure SQL-indexeerfunctie zijn Azure SDK's of wizard Gegevens importeren in Azure Portal. Als u Azure Portal gebruikt, moet u ervoor zorgen dat toegang tot alle openbare netwerken is ingeschakeld in de Azure SQL-firewall en dat de client toegang heeft via een regel voor binnenkomend verkeer.

De gegevensbron definiëren

De definitie van de gegevensbron geeft de gegevens op die moeten worden geïndexeerde, referenties en beleidsregels voor het identificeren van wijzigingen in de gegevens. Een gegevensbron wordt gedefinieerd als een onafhankelijke resource, zodat deze kan worden gebruikt door meerdere indexeerfuncties.

  1. Maak een gegevensbron of werk de gegevensbron bij om de definitie ervan in te stellen:

     POST https://myservice.search.windows.net/datasources?api-version=2020-06-30
     Content-Type: application/json
     api-key: admin-key
    
     {
         "name" : "myazuresqldatasource",
         "description" : "A database for testing Azure AI Search indexes.",
         "type" : "azuresql",
         "credentials" : { "connectionString" : "Server=tcp:<your server>.database.windows.net,1433;Database=<your database>;User ID=<your user name>;Password=<your password>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" },
         "container" : { 
             "name" : "name of the table or view that you want to index",
             "query" : null (not supported in the Azure SQL indexer)
             },
         "dataChangeDetectionPolicy": null,
         "dataDeletionDetectionPolicy": null,
         "encryptionKey": null,
         "identity": null
     }
    
  2. Geef een unieke naam op voor de gegevensbron die de naamconventies van Azure AI Search volgt.

  3. Stel 'type' in op "azuresql" (vereist).

  4. Stel referenties in op een verbindingsreeks:

    • U kunt een volledige toegang krijgen verbindingsreeks via Azure Portal. Gebruik de ADO.NET connection string optie. Stel de gebruikersnaam en het wachtwoord in.

    • U kunt ook een beheerde identiteit opgeven verbindingsreeks die geen databasegeheimen bevat met de volgende indeling: Initial Catalog|Database=<your database name>;ResourceId=/subscriptions/<your subscription ID>/resourceGroups/<your resource group name>/providers/Microsoft.Sql/servers/<your SQL Server name>/;Connection Timeout=connection timeout length;

    Zie Verbinding maken naar azure SQL Database-indexeerfunctie met behulp van een beheerde identiteit voor meer informatie.

Zoekvelden toevoegen aan een index

Voeg in een zoekindex velden toe die overeenkomen met de velden in SQL Database. Zorg ervoor dat het zoekindexschema compatibel is met het bronschema met behulp van gelijkwaardige gegevenstypen.

  1. Maak of werk een index bij om zoekvelden te definiëren waarmee gegevens worden opgeslagen:

    POST https://[service name].search.windows.net/indexes?api-version=2020-06-30
    Content-Type: application/json
    api-key: [Search service admin key]
    {
        "name": "mysearchindex",
        "fields": [{
            "name": "id",
            "type": "Edm.String",
            "key": true,
            "searchable": false
        }, 
        {
            "name": "description",
            "type": "Edm.String",
            "filterable": false,
            "searchable": true,
            "sortable": false,
            "facetable": false,
            "suggestions": true
        }
      ]
    }
    
  2. Maak een documentsleutelveld ('sleutel': true') waarmee elk zoekdocument uniek wordt geïdentificeerd. Dit is het enige veld dat vereist is in een zoekindex. Normaal gesproken wordt de primaire sleutel van de tabel toegewezen aan het indexsleutelveld. De documentsleutel moet uniek en niet null zijn. De waarden kunnen numeriek zijn in brongegevens, maar in een zoekindex is een sleutel altijd een tekenreeks.

  3. Maak meer velden om meer doorzoekbare inhoud toe te voegen. Zie Een index maken voor hulp.

Toewijzingsgegevenstypen

SQL-gegevenstype Azure AI Search-veldtypen Opmerkingen
bit Edm.Boolean, Edm.String
int, smallint, tinyint Edm.Int32, Edm.Int64, Edm.String
bigint Edm.Int64, Edm.String
real, float Edm.Double, Edm.String
smallmoney, geld decimal numeriek Edm.String Azure AI Search biedt geen ondersteuning voor het converteren van decimale typen naar Edm.Double omdat hierdoor precisie verloren gaat
char, nchar, varchar, nvarchar Edm.String
Collection(Edm.String)
Een SQL-tekenreeks kan worden gebruikt om een verzameling(Edm.String) veld te vullen als de tekenreeks een JSON-matrix met tekenreeksen vertegenwoordigt: ["red", "white", "blue"]
smalldatetime, datetime, datetime2, datetimeoffset Edm.DateTimeOffset, Edm.String
uniqueidentifer Edm.String
geografie Edm.GeographyPoint Alleen geografische instanties van het type POINT met SRID 4326 (de standaardinstelling) worden ondersteund
rowversion Niet van toepassing Kolommen met rijversies kunnen niet worden opgeslagen in de zoekindex, maar kunnen worden gebruikt voor het bijhouden van wijzigingen
tijd, tijdspanne, binair, varbinaire, afbeelding, xml, geometrie, CLR-typen Niet van toepassing Niet ondersteund

De Azure SQL-indexeerfunctie configureren en uitvoeren

Zodra de index en de gegevensbron zijn gemaakt, kunt u de indexeerfunctie maken. De configuratie van de indexeerfunctie geeft de invoer, parameters en eigenschappen aan die het gedrag van de uitvoeringstijd regelen.

  1. Maak of werk een indexeerfunctie bij door deze een naam te geven en te verwijzen naar de gegevensbron en doelindex:

    POST https://[service name].search.windows.net/indexers?api-version=2020-06-30
    Content-Type: application/json
    api-key: [search service admin key]
    {
        "name" : "[my-sqldb-indexer]",
        "dataSourceName" : "[my-sqldb-ds]",
        "targetIndexName" : "[my-search-index]",
        "disabled": null,
        "schedule": null,
        "parameters": {
            "batchSize": null,
            "maxFailedItems": 0,
            "maxFailedItemsPerBatch": 0,
            "base64EncodeKeys": false,
            "configuration": {
                "queryTimeout": "00:04:00",
                "convertHighWaterMarkToRowVersion": false,
                "disableOrderByHighWaterMarkColumn": false
            }
        },
        "fieldMappings": [],
        "encryptionKey": null
    }
    
  2. Onder parameters bevat de configuratiesectie parameters die specifiek zijn voor Azure SQL:

    • De standaardtime-out van query's voor het uitvoeren van SQL-query's is vijf minuten, die u kunt overschrijven.

    • "convertHighWaterMarkToRowVersion" optimaliseert voor het beleid voor wijzigingsdetectie van hoge watermarkeringen. Beleidsregels voor wijzigingsdetectie worden ingesteld in de gegevensbron. Als u het systeemeigen beleid voor wijzigingsdetectie gebruikt, heeft deze parameter geen effect.

    • "disableOrderByHighWaterMarkColumn" zorgt ervoor dat de SQL-query die wordt gebruikt door het beleid voor hoge watermarkeringen, de ORDER BY-component weglaat. Als u het systeemeigen beleid voor wijzigingsdetectie gebruikt, heeft deze parameter geen effect.

  3. Geef veldtoewijzingen op als er verschillen zijn in veldnaam of -type, of als u meerdere versies van een bronveld in de zoekindex nodig hebt.

  4. Zie Een indexeerfunctie maken voor meer informatie over andere eigenschappen.

Een indexeerfunctie wordt automatisch uitgevoerd wanneer deze wordt gemaakt. U kunt dit voorkomen door 'uitgeschakeld' in te stellen op waar. Als u de uitvoering van de indexeerfunctie wilt beheren, voert u een indexeerfunctie op aanvraag uit of plaatst u deze in een schema.

De status van de indexeerfunctie controleren

Als u de status en uitvoeringsgeschiedenis van de indexeerfunctie wilt controleren, verzendt u een get-indexeerstatusaanvraag :

GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2020-06-30
  Content-Type: application/json  
  api-key: [admin key]

Het antwoord bevat de status en het aantal verwerkte items. Het moet er ongeveer uitzien als in het volgende voorbeeld:

    {
        "status":"running",
        "lastResult": {
            "status":"success",
            "errorMessage":null,
            "startTime":"2022-02-21T00:23:24.957Z",
            "endTime":"2022-02-21T00:36:47.752Z",
            "errors":[],
            "itemsProcessed":1599501,
            "itemsFailed":0,
            "initialTrackingState":null,
            "finalTrackingState":null
        },
        "executionHistory":
        [
            {
                "status":"success",
                "errorMessage":null,
                "startTime":"2022-02-21T00:23:24.957Z",
                "endTime":"2022-02-21T00:36:47.752Z",
                "errors":[],
                "itemsProcessed":1599501,
                "itemsFailed":0,
                "initialTrackingState":null,
                "finalTrackingState":null
            },
            ... earlier history items
        ]
    }

De uitvoeringsgeschiedenis bevat maximaal 50 van de laatst voltooide uitvoeringen, die in de omgekeerde chronologische volgorde worden gesorteerd, zodat de laatste uitvoering als eerste wordt uitgevoerd.

Nieuwe, gewijzigde en verwijderde rijen indexeren

Als uw SQL-database het bijhouden van wijzigingen ondersteunt, kan een zoekindexeerfunctie alleen de nieuwe en bijgewerkte inhoud van de volgende indexeerfunctie ophalen.

Als u incrementele indexering wilt inschakelen, stelt u de eigenschap dataChangeDetectionPolicy in uw gegevensbrondefinitie in. Deze eigenschap vertelt de indexeerfunctie welk mechanisme voor het bijhouden van wijzigingen wordt gebruikt in uw tabel of weergave.

Voor Azure SQL-indexeerfuncties zijn er twee beleidsregels voor wijzigingsdetectie:

  • "SqlIntegratedChangeTrackingPolicy" (alleen van toepassing op tabellen)

  • "HighWaterMarkChangeDetectionPolicy" (werkt voor tabellen en weergaven)

Geïntegreerd SQL-Wijzigingen bijhouden-beleid

We raden u aan 'SqlIntegratedChangeTrackingPolicy' te gebruiken voor de efficiëntie en de mogelijkheid om verwijderde rijen te identificeren.

Databasevereisten:

  • SQL Server 2012 SP3 en hoger, als u SQL Server op virtuele Azure-machines gebruikt
  • Azure SQL Database of SQL Managed Instance
  • Alleen tabellen (geen weergaven)
  • Schakel wijzigingen bijhouden in voor de tabel in de database
  • Geen samengestelde primaire sleutel (een primaire sleutel met meer dan één kolom) in de tabel
  • Geen geclusterde indexen in de tabel. Als tijdelijke oplossing moet elke geclusterde index worden verwijderd en opnieuw worden gemaakt als niet-geclusterde index, maar de prestaties kunnen worden beïnvloed in de bron in vergelijking met een geclusterde index

Beleidsregels voor wijzigingsdetectie worden toegevoegd aan definities van gegevensbronnen. Als u dit beleid wilt gebruiken, maakt of werkt u uw gegevensbron als volgt bij:

POST https://myservice.search.windows.net/datasources?api-version=2020-06-30
Content-Type: application/json
api-key: admin-key
    {
        "name" : "myazuresqldatasource",
        "type" : "azuresql",
        "credentials" : { "connectionString" : "connection string" },
        "container" : { "name" : "table name" },
        "dataChangeDetectionPolicy" : {
            "@odata.type" : "#Microsoft.Azure.Search.SqlIntegratedChangeTrackingPolicy"
    }

Bij het gebruik van geïntegreerd SQL-beleid voor het bijhouden van wijzigingen geeft u geen afzonderlijk beleid voor gegevensverwijdering op. Het geïntegreerde SQL-beleid voor het bijhouden van wijzigingen heeft ingebouwde ondersteuning voor het identificeren van verwijderde rijen. Als de verwijderde rijen echter automatisch worden gedetecteerd, moet de documentsleutel in uw zoekindex hetzelfde zijn als de primaire sleutel in de SQL-tabel.

Notitie

Wanneer u TRUNCATE TABLE gebruikt om een groot aantal rijen uit een SQL-tabel te verwijderen, moet de indexeerfunctie opnieuw worden ingesteld om de status van het bijhouden van wijzigingen opnieuw in te stellen om het verwijderen van rijen op te halen.

Beleid voor wijzigingsdetectie hoog watermarkering

Dit beleid voor wijzigingsdetectie is afhankelijk van een kolom met hoge watermarkeringen in uw tabel of weergave die de versie of het tijdstip vastlegt waarop een rij voor het laatst is bijgewerkt. Als u een weergave gebruikt, moet u beleid voor hoge watermarkeringen gebruiken.

De kolom met hoge watermarkeringen moet voldoen aan de volgende vereisten:

  • Alle invoegingen geven een waarde op voor de kolom.
  • Alle updates voor een item wijzigen ook de waarde van de kolom.
  • De waarde van deze kolom wordt verhoogd met elke invoeg- of update.
  • Query's met de volgende WHERE- en ORDER BY-componenten kunnen efficiënt worden uitgevoerd: WHERE [High Water Mark Column] > [Current High Water Mark Value] ORDER BY [High Water Mark Column]

Notitie

We raden u ten zeerste aan om het gegevenstype rowversion te gebruiken voor de kolom met hoge watermarkeringen. Als een ander gegevenstype wordt gebruikt, is het bijhouden van wijzigingen niet gegarandeerd dat alle wijzigingen worden vastgelegd in de aanwezigheid van transacties die gelijktijdig met een indexeerquery worden uitgevoerd. Wanneer u rowversion gebruikt in een configuratie met alleen-lezen replica's, moet u de indexeerfunctie aanwijzen op de primaire replica. Alleen een primaire replica kan worden gebruikt voor scenario's voor gegevenssynchronisatie.

Beleidsregels voor wijzigingsdetectie worden toegevoegd aan definities van gegevensbronnen. Als u dit beleid wilt gebruiken, maakt of werkt u uw gegevensbron als volgt bij:

POST https://myservice.search.windows.net/datasources?api-version=2020-06-30
Content-Type: application/json
api-key: admin-key
    {
        "name" : "myazuresqldatasource",
        "type" : "azuresql",
        "credentials" : { "connectionString" : "connection string" },
        "container" : { "name" : "table or view name" },
        "dataChangeDetectionPolicy" : {
            "@odata.type" : "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
            "highWaterMarkColumnName" : "[a rowversion or last_updated column name]"
        }
    }

Notitie

Als de brontabel geen index heeft voor de kolom met hoge watermarkeringen, kunnen er een time-out optreden voor query's die door de SQL-indexeerfunctie worden gebruikt. Met name voor de ORDER BY [High Water Mark Column] component moet een index efficiënt worden uitgevoerd wanneer de tabel veel rijen bevat.

convertHighWaterMarkToRowVersion

Als u een gegevenstype rowversion gebruikt voor de kolom met hoge watermarkeringen, kunt u overwegen om de eigenschap in de configuratie van de convertHighWaterMarkToRowVersion indexeerfunctie in te stellen. Als u deze eigenschap instelt op true, resulteert dit in het volgende gedrag:

  • Gebruikt het gegevenstype rowversion voor de kolom met hoge watermarkeringen in de SQL-query van de indexeerfunctie. Door het juiste gegevenstype te gebruiken, worden de queryprestaties van de indexeerfunctie verbeterd.

  • Trekt er een af van de rowversion-waarde voordat de indexeerfunctiequery wordt uitgevoerd. Weergaven met een-op-veel-joins hebben mogelijk rijen met dubbele rowversion-waarden. Als u er één aftrekken, zorgt u ervoor dat de indexeerquery deze rijen niet mist.

Als u deze eigenschap wilt inschakelen, maakt of werkt u de indexeerfunctie bij met de volgende configuratie:

    {
      ... other indexer definition properties
     "parameters" : {
            "configuration" : { "convertHighWaterMarkToRowVersion" : true } }
    }

queryTimeout

Als er time-outfouten optreden, stelt u de configuratie-instelling van de queryTimeout indexeerfunctie in op een waarde die hoger is dan de standaard time-out van 5 minuten. Als u bijvoorbeeld de time-out wilt instellen op 10 minuten, maakt of werkt u de indexeerfunctie bij met de volgende configuratie:

    {
      ... other indexer definition properties
     "parameters" : {
            "configuration" : { "queryTimeout" : "00:10:00" } }
    }

disableOrderByHighWaterMarkColumn

U kunt de ORDER BY [High Water Mark Column] component ook uitschakelen. Dit wordt echter niet aanbevolen omdat als de uitvoering van de indexeerfunctie wordt onderbroken door een fout, de indexeerfunctie alle rijen opnieuw moet verwerken als deze later wordt uitgevoerd, zelfs als de indexeerfunctie al bijna alle rijen heeft verwerkt op het moment dat deze werd onderbroken. Als u de ORDER BY component wilt uitschakelen, gebruikt u de disableOrderByHighWaterMarkColumn instelling in de definitie van de indexeerfunctie:

    {
     ... other indexer definition properties
     "parameters" : {
            "configuration" : { "disableOrderByHighWaterMarkColumn" : true } }
    }

Detectiebeleid voor voorlopig verwijderen van kolommen

Wanneer rijen uit de brontabel worden verwijderd, wilt u deze rijen waarschijnlijk ook uit de zoekindex verwijderen. Als u het geïntegreerde SQL-beleid voor het bijhouden van wijzigingen gebruikt, wordt dit voor u geregeld. Het beleid voor het bijhouden van wijzigingen in hoge watermarkeringen helpt u echter niet bij verwijderde rijen. Wat u moet doen?

Als de rijen fysiek uit de tabel worden verwijderd, kan Azure AI Search de aanwezigheid van records die niet meer bestaan, niet afleiden. U kunt echter de techniek 'voorlopig verwijderen' gebruiken om rijen logisch te verwijderen zonder ze uit de tabel te verwijderen. Voeg een kolom toe aan uw tabel of bekijk en markeer rijen als verwijderd met behulp van die kolom.

Wanneer u de techniek voor voorlopig verwijderen gebruikt, kunt u het beleid voor voorlopig verwijderen als volgt opgeven bij het maken of bijwerken van de gegevensbron:

    {
        …,
        "dataDeletionDetectionPolicy" : {
           "@odata.type" : "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
           "softDeleteColumnName" : "[a column name]",
           "softDeleteMarkerValue" : "[the value that indicates that a row is deleted]"
        }
    }

De softDeleteMarkerValue moet een tekenreeks zijn in de JSON-weergave van uw gegevensbron. Gebruik de tekenreeksweergave van uw werkelijke waarde. Als u bijvoorbeeld een kolom met gehele getallen hebt waarin verwijderde rijen zijn gemarkeerd met de waarde 1, gebruikt u "1". Als u een BIT-kolom hebt waarin verwijderde rijen zijn gemarkeerd met de Booleaanse waarde waar, gebruikt u de letterlijke tekenreeks "True" of "true"maakt het niet uit.

Als u een beleid voor voorlopig verwijderen instelt vanuit Azure Portal, voegt u geen aanhalingstekens toe rond de markeringswaarde voor voorlopig verwijderen. De veldinhoud wordt al als een tekenreeks begrepen en wordt automatisch omgezet in een JSON-tekenreeks voor u. In de bovenstaande voorbeelden typt 1u gewoon of Truetrue in het veld van de portal.

Veelgestelde vragen

V: Kan ik Always Encrypted-kolommen indexeren?

Nee Always Encrypted-kolommen worden momenteel niet ondersteund door Azure AI Search-indexeerfuncties.

V: Kan ik azure SQL-indexeerfunctie gebruiken met SQL-databases die worden uitgevoerd op IaaS-VM's in Azure?

Ja. U moet echter toestaan dat uw zoekservice verbinding maakt met uw database. Zie Een verbinding van een Azure AI Search-indexeerfunctie configureren voor SQL Server op een Azure-VM voor meer informatie.

V: Kan ik azure SQL-indexeerfunctie gebruiken met SQL-databases die on-premises worden uitgevoerd?

Niet rechtstreeks. We raden u niet aan of bieden geen ondersteuning voor een directe verbinding, omdat u hiervoor uw databases moet openen voor internetverkeer. Klanten zijn geslaagd met dit scenario met behulp van brugtechnologieën zoals Azure Data Factory. Zie Gegevens pushen naar een Azure AI Search-index met behulp van Azure Data Factory voor meer informatie.

V: Kan ik een secundaire replica in een failovercluster gebruiken als gegevensbron?

Dat hangt ervan af. Voor volledige indexering van een tabel of weergave kunt u een secundaire replica gebruiken.

Voor incrementele indexering ondersteunt Azure AI Search twee beleidsregels voor wijzigingsdetectie: geïntegreerde sql-wijzigingen bijhouden en Hoge watermarkeringen.

Bij alleen-lezen replica's biedt SQL Database geen ondersteuning voor geïntegreerd bijhouden van wijzigingen. Daarom moet u beleid voor hoog watermarkeringen gebruiken.

Onze standaardaanbieding is het gebruik van het gegevenstype rowversion voor de kolom met hoge watermarkeringen. Het gebruik van rowversion is echter afhankelijk van de MIN_ACTIVE_ROWVERSION functie, die niet wordt ondersteund voor alleen-lezen replica's. Daarom moet u de indexeerfunctie naar een primaire replica laten wijzen als u rowversion gebruikt.

Als u rowversion op een alleen-lezen replica probeert te gebruiken, ziet u de volgende fout:

'Het gebruik van een rowversion-kolom voor het bijhouden van wijzigingen wordt niet ondersteund op secundaire (alleen-lezen) beschikbaarheidsreplica's. Werk de gegevensbron bij en geef een verbinding op met de primaire beschikbaarheidsreplica. De eigenschap Updateability van de huidige database is 'READ_ONLY'.

V: Kan ik een alternatieve, niet-rowversion-kolom gebruiken voor het bijhouden van wijzigingen in hoge watermarkeringen?

Het wordt niet aanbevolen. Alleen rowversion maakt betrouwbare gegevenssynchronisatie mogelijk. Afhankelijk van uw toepassingslogica is het echter mogelijk veilig als:

  • U kunt ervoor zorgen dat wanneer de indexeerfunctie wordt uitgevoerd, er geen openstaande transacties in de tabel staan die worden geïndexeerd (bijvoorbeeld dat alle tabelupdates plaatsvinden als een batch volgens een schema en dat de Azure AI Search-indexeerfunctieplanning is ingesteld om overlapping met het tabelupdateschema te voorkomen).

  • U voert periodiek een volledige herindex uit om gemiste rijen op te halen.