Gegevens indexeren uit Azure Files

Belangrijk

Azure Files-indexeerfunctie is momenteel beschikbaar als openbare preview onder aanvullende gebruiksvoorwaarden. Gebruik een preview-REST API (2020-06-30-preview of hoger) om de gegevensbron van de indexeerfunctie te maken.

In dit artikel leert u hoe u een indexeerfunctie configureert waarmee inhoud uit Azure Files wordt geïmporteerd en deze doorzoekbaar maakt in Azure AI Search. Invoer in de indexeerfunctie zijn uw bestanden in één share. Uitvoer is een zoekindex met doorzoekbare inhoud en metagegevens die zijn opgeslagen in afzonderlijke velden.

Dit artikel is een aanvulling op Een indexeerfunctie maken met informatie die specifiek is voor het indexeren van bestanden in Azure Storage. 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. Gegevensextractie vindt plaats wanneer u de aanvraag Indexeerfunctie maken verzendt.

Vereisten

  • Azure Files, laag geoptimaliseerd voor transacties.

  • Een SMB-bestandsshare die de broninhoud levert. NFS-shares worden niet ondersteund.

  • Bestanden met tekst. Als u binaire gegevens hebt, kunt u AI-verrijking opnemen voor afbeeldingsanalyse.

  • Leesmachtigingen voor Azure Storage. Een 'volledige toegang' verbindingsreeks bevat een sleutel die toegang verleent tot de inhoud.

  • Gebruik een REST-client om REST-aanroepen te formuleren die vergelijkbaar zijn met de aanroepen die in dit artikel worden weergegeven.

Ondersteunde documentindelingen

De Indexeerfunctie van Azure Files kan tekst extraheren uit de volgende documentindelingen:

  • CSV (zie CSV-blobs indexeren)
  • EML
  • EPUB
  • GZ
  • HTML
  • JSON (zie JSON-blobs indexeren)
  • KML (XML voor geografische weergaven)
  • Microsoft Office-indelingen: DOCX/DOC/DOCM, XLSX/XLS/XLSM, PPTX/PPT/PPTM, MSG (e-mailberichten van Outlook), XML (zowel 2003 als 2006 WORD XML)
  • Documentindelingen openen: ODT, ODS, ODP
  • PDF
  • Tekstbestanden zonder opmaak (zie ook Indexering van tekst zonder opmaak)
  • RTF
  • XML
  • ZIP

Hoe Azure Files wordt geïndexeerd

Standaard worden de meeste bestanden geïndexeerd als één zoekdocument in de index, inclusief bestanden met gestructureerde inhoud, zoals JSON of CSV, die worden geïndexeerd als één stuk tekst.

Een samengesteld of ingesloten document (zoals een ZIP-archief, een Word-document met ingesloten Outlook-e-mail met bijlagen of een . MSG-bestand met bijlagen) wordt ook geïndexeerd als één document. Bijvoorbeeld alle afbeeldingen die zijn geëxtraheerd uit de bijlagen van een . MSG-bestand wordt geretourneerd in het veld normalized_images. Als u afbeeldingen hebt, kunt u OVERWEGEN OM AI-verrijking toe te voegen om meer zoekhulpprogramma's van die inhoud te krijgen.

Tekstuele inhoud van een document wordt geëxtraheerd in een tekenreeksveld met de naam 'inhoud'. U kunt ook standaard en door de gebruiker gedefinieerde metagegevens extraheren.

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 of werk een gegevensbron bij om de definitie ervan in te stellen met behulp van een preview-API-versie 2020-06-30-Preview of hoger voor 'type': "azurefile"

    {
        "name" : "my-file-datasource",
        "type" : "azurefile",
        "credentials" : { "connectionString" : "DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account key>;" },
        "container" : { "name" : "my-file-share", "query" : "<optional-directory-name>" }
    }
    
  2. Stel 'type' in op "azurefile" (vereist).

  3. Stel referenties in op een Azure Storage-verbindingsreeks. In de volgende sectie worden de ondersteunde indelingen beschreven.

  4. Stel 'container' in op de hoofdbestandsshare en gebruik 'query' om submappen op te geven.

Een definitie van een gegevensbron kan ook beleid voor voorlopig verwijderen bevatten, als u wilt dat de indexeerfunctie een zoekdocument verwijdert wanneer het brondocument wordt gemarkeerd voor verwijdering.

Ondersteunde referenties en verbindingsreeks s

Indexeerfuncties kunnen verbinding maken met een bestandsshare met behulp van de volgende verbindingen.

Opslagaccount voor volledige toegang verbindingsreeks
{ "connectionString" : "DefaultEndpointsProtocol=https;AccountName=<your storage account>;AccountKey=<your account key>;" }
U kunt de verbindingsreeks ophalen op de pagina Opslagaccount in Azure Portal door toegangssleutels te selecteren in het linkernavigatiedeelvenster. Zorg ervoor dat u een volledige verbindingsreeks en niet alleen een sleutel selecteert.

Zoekvelden toevoegen aan een index

Voeg in de zoekindex velden toe om de inhoud en metagegevens van uw Azure-bestanden te accepteren.

  1. Een index maken of bijwerken om zoekvelden te definiëren waarmee bestandsinhoud en metagegevens worden opgeslagen:

    POST /indexes?api-version=2020-06-30
    {
      "name" : "my-search-index",
      "fields": [
          { "name": "ID", "type": "Edm.String", "key": true, "searchable": false },
          { "name": "content", "type": "Edm.String", "searchable": true, "filterable": false },
          { "name": "metadata_storage_name", "type": "Edm.String", "searchable": false, "filterable": true, "sortable": true  },
          { "name": "metadata_storage_path", "type": "Edm.String", "searchable": false, "filterable": true, "sortable": true },
          { "name": "metadata_storage_size", "type": "Edm.Int64", "searchable": false, "filterable": true, "sortable": true  },
          { "name": "metadata_storage_content_type", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true }        
      ]
    }
    
  2. Maak een documentsleutelveld ('sleutel': true'). Voor blob-inhoud zijn de beste kandidaten metagegevenseigenschappen. Metagegevenseigenschappen bevatten vaak tekens, zoals / en -, die ongeldig zijn voor documentsleutels. Omdat de indexeerfunctie een eigenschap base64EncodeKeys heeft (standaard true), codeert deze automatisch de metagegevenseigenschap, zonder dat er configuratie of veldtoewijzing is vereist.

    • metadata_storage_path (standaard) volledig pad naar het object of bestand

    • metadata_storage_name alleen bruikbaar als namen uniek zijn

    • Een aangepaste metagegevenseigenschap die u toevoegt aan blobs. Deze optie vereist dat uw blobuploadproces die metagegevenseigenschap toevoegt aan alle blobs. Omdat de sleutel een vereiste eigenschap is, kunnen blobs die een waarde missen, niet worden geïndexeerd. Als u een aangepaste metagegevenseigenschap als sleutel gebruikt, moet u geen wijzigingen aanbrengen in die eigenschap. Indexeerfuncties voegen dubbele documenten toe voor dezelfde blob als de sleuteleigenschap wordt gewijzigd.

  3. Voeg een inhoudsveld toe om geëxtraheerde tekst uit elk bestand op te slaan via de eigenschap 'inhoud' van de blob. U hoeft deze naam niet te gebruiken, maar hiermee kunt u gebruikmaken van impliciete veldtoewijzingen.

  4. Voeg velden toe voor standaardmetagegevenseigenschappen. Bij bestandsindexering zijn de standaardmetagegevenseigenschappen hetzelfde als de eigenschappen van de blobmetagegevens. De Indexeerfunctie van Azure Files maakt automatisch interne veldtoewijzingen voor deze eigenschappen waarmee namen van afbreekstreepjes worden geconverteerd naar onderstrepingstekens voor eigenschapsnamen. U moet nog steeds de velden toevoegen die u wilt gebruiken voor de indexdefinitie, maar u kunt veldtoewijzingen weglaten in de gegevensbron.

    • metadata_storage_name (Edm.String) - de bestandsnaam. Als u bijvoorbeeld een bestand /my-share/my-folder/submap/resume.pdf hebt, is resume.pdfde waarde van dit veld.
    • metadata_storage_path (Edm.String) - de volledige URI van het bestand, inclusief het opslagaccount. Bijvoorbeeld https://myaccount.file.core.windows.net/my-share/my-folder/subfolder/resume.pdf
    • metadata_storage_content_type (Edm.String) - inhoudstype zoals opgegeven door de code die u hebt gebruikt om het bestand te uploaden. Bijvoorbeeld: application/octet-stream.
    • metadata_storage_last_modified (Edm.DateTimeOffset) - laatst gewijzigde tijdstempel voor het bestand. Azure AI Search gebruikt deze tijdstempel om gewijzigde bestanden te identificeren, om te voorkomen dat alles na de eerste indexering opnieuw wordt geïndexeerde.
    • metadata_storage_size (Edm.Int64) - bestandsgrootte in bytes.
    • metadata_storage_content_md5 (Edm.String) - MD5-hash van de bestandsinhoud, indien beschikbaar.
    • metadata_storage_sas_token (Edm.String) - Een tijdelijk SAS-token dat kan worden gebruikt door aangepaste vaardigheden om toegang te krijgen tot het bestand. Dit token mag niet worden opgeslagen voor later gebruik, omdat het mogelijk verloopt.

De Indexeerfunctie van Azure Files 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
    {
      "name" : "my-file-indexer",
      "dataSourceName" : "my-file-datasource",
      "targetIndexName" : "my-search-index",
      "parameters": {
         "batchSize": null,
         "maxFailedItems": null,
         "maxFailedItemsPerBatch": null,
         "base64EncodeKeys": null,
         "configuration": {
            "indexedFileNameExtensions" : ".pdf,.docx",
            "excludedFileNameExtensions" : ".png,.jpeg" 
        }
      },
      "schedule" : { },
      "fieldMappings" : [ ]
    }
    
  2. Geef in de optionele sectie Configuratie alle insluitings- of uitsluitingscriteria op. Als u niets opgeeft, worden alle bestanden in de bestandsshare opgehaald.

    Als beide indexedFileNameExtensions parameters aanwezig excludedFileNameExtensions zijn, kijkt Azure AI Search eerst naar indexedFileNameExtensions, dan naar excludedFileNameExtensions. Als dezelfde bestandsextensie aanwezig is in beide lijsten, wordt deze uitgesloten van indexering.

  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.

    Bij het indexeren van bestanden kunt u veldtoewijzingen vaak weglaten omdat de indexeerfunctie ingebouwde ondersteuning heeft voor het toewijzen van de eigenschappen 'inhoud' en metagegevens aan velden met vergelijkbare namen en getypte velden in een index. Voor eigenschappen van metagegevens vervangt de indexeerfunctie automatisch afbreekstreepjes door onderstrepingstekens - in de zoekindex.

  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.

Volgende stappen

U kunt nu de indexeerfunctie uitvoeren, de status bewaken of de uitvoering van de indexeerfunctie plannen. De volgende artikelen zijn van toepassing op indexeerfuncties die inhoud ophalen uit Azure Storage: