Bewerken

Delen via


Bestandsinhoud en metagegevens indexeren met behulp van Azure AI Search

Azure AI Search
Azure Blob Storage
Azure Table Storage

In dit artikel wordt gedemonstreerd hoe u een zoekservice maakt waarmee gebruikers documenten kunnen zoeken op basis van documentinhoud, naast metagegevens die aan het document zijn gekoppeld.

U kunt deze service implementeren met behulp van meerdere indexeerfuncties in Azure AI Search.

In dit artikel wordt een voorbeeldworkload gebruikt om te laten zien hoe u één zoekindex maakt die is gebaseerd op documenten in Azure Blob Storage. De bestandsmetagegevens worden opgeslagen in Azure Table Storage.

Architectuur

Diagram met een architectuur waarmee kan worden gezocht op basis van bestandsinhoud en metagegevens.

Download een PowerPoint-bestand van deze architectuur.

Gegevensstroom

  1. Documenten worden opgeslagen in Blob Storage, mogelijk samen met een beperkte hoeveelheid metagegevens (bijvoorbeeld de auteur van het document).
  2. Aanvullende metagegevens worden opgeslagen in Table Storage, waarmee voor elk document aanzienlijk meer informatie kan worden opgeslagen.
  3. Een indexeerfunctie leest de inhoud van elk bestand, samen met eventuele blobmetagegevens, en slaat de gegevens op in de zoekindex.
  4. Een andere indexeerfunctie leest de aanvullende metagegevens uit de tabel en slaat deze op in dezelfde zoekindex.
  5. Er wordt een zoekquery verzonden naar de zoekservice. De query retourneert overeenkomende documenten, op basis van zowel documentinhoud als metagegevens van documenten.

Onderdelen

  • Blob Storage biedt rendabele cloudopslag voor bestandsgegevens, waaronder gegevens in indelingen zoals PDF, HTML en CSV en in Microsoft 365-documenten.
  • Table Storage biedt opslag voor niet-relationele gestructureerde gegevens. In dit scenario wordt het gebruikt om de metagegevens voor elk document op te slaan.
  • Azure AI Search is een volledig beheerde zoekservice die infrastructuur, API's en hulpprogramma's biedt voor het bouwen van een uitgebreide zoekervaring.

Alternatieven

In dit scenario worden indexeerfuncties in Azure AI Search gebruikt om automatisch nieuwe inhoud te detecteren in ondersteunde gegevensbronnen, zoals blob- en tabelopslag, en deze vervolgens toe te voegen aan de zoekindex. U kunt ook de API's van Azure AI Search gebruiken om gegevens naar de zoekindex te pushen. Als u echter wel code moet schrijven om de gegevens naar de zoekindex te pushen en tekst te parseren en te extraheren uit de binaire documenten die u wilt doorzoeken. De Blob Storage-indexeerfunctie ondersteunt veel documentindelingen, waardoor het proces voor tekstextractie en indexering aanzienlijk wordt vereenvoudigd.

Als u indexeerfuncties gebruikt, kunt u de gegevens desgewenst verrijken als onderdeel van een indexeringspijplijn. U kunt bijvoorbeeld Azure AI-services gebruiken om optische tekenherkenning (OCR) of visuele analyse van de afbeeldingen in documenten uit te voeren, de taal van documenten te detecteren of documenten te vertalen. U kunt ook uw eigen aangepaste vaardigheden definiëren om de gegevens te verrijken op manieren die relevant zijn voor uw bedrijfsscenario.

Deze architectuur maakt gebruik van blob- en tabelopslag omdat ze rendabel en efficiënt zijn. Dit ontwerp maakt ook gecombineerde opslag van de documenten en metagegevens mogelijk in één opslagaccount. Alternatieve ondersteunde gegevensbronnen voor de documenten zelf zijn Azure Data Lake Storage en Azure Files. Documentmetagegevens kunnen worden opgeslagen in elke andere ondersteunde gegevensbron die gestructureerde gegevens bevat, zoals Azure SQL Database en Azure Cosmos DB.

Scenariodetails

Bestandsinhoud zoeken

Met deze oplossing kunnen gebruikers documenten zoeken op basis van zowel bestandsinhoud als aanvullende metagegevens die afzonderlijk voor elk document worden opgeslagen. Naast het doorzoeken van de tekstinhoud van een document, wil een gebruiker mogelijk zoeken naar de auteur van het document, het documenttype (zoals papier of rapport) of de zakelijke impact (hoog, gemiddeld of laag).

Azure AI Search is een volledig beheerde zoekservice waarmee zoekindexen kunnen worden gemaakt die de informatie bevatten waarnaar gebruikers kunnen zoeken.

De documenten die in dit scenario worden doorzocht, worden opgeslagen in Blob Storage. Daarom kunt u de ingebouwde Blob Storage-indexeerfunctie in Azure AI Search gebruiken om automatisch tekst uit het document te extraheren en hun inhoud toe te voegen aan de zoekindex.

Metagegevens van bestanden doorzoeken

Als u aanvullende informatie over het document wilt opnemen, kunt u metagegevens rechtstreeks aan de blobs koppelen zonder een afzonderlijk archief te gebruiken. De ingebouwde zoekindexeerfunctie voor Blob Storage kan deze metagegevens zelfs lezen en in de zoekindex plaatsen. Hierdoor kunnen gebruikers zoeken naar metagegevens samen met de bestandsinhoud. De hoeveelheid metagegevens is echter beperkt tot 8 kB per blob, dus de hoeveelheid informatie die u op elke blob kunt plaatsen, is redelijk klein. U kunt ervoor kiezen om alleen de meest kritieke informatie rechtstreeks op de blobs op te slaan. In dit scenario wordt alleen de auteur van het document opgeslagen op de blob.

Als u deze opslagbeperking wilt overwinnen, kunt u extra metagegevens in een andere gegevensbron plaatsen met een ondersteunde indexeerfunctie, zoals Table Storage. U kunt het documenttype, de bedrijfsimpact en andere metagegevenswaarden toevoegen als afzonderlijke kolommen in de tabel. Als u de ingebouwde Table Storage-indexeerfunctie zo configureert dat dezelfde zoekindex wordt gebruikt als de blobindex, worden de metagegevens van de blob- en tabelopslag gecombineerd voor elk document in de zoekindex.

Meerdere gegevensbronnen gebruiken voor één zoekindex

Om ervoor te zorgen dat beide indexeerfuncties verwijzen naar hetzelfde document in de zoekindex, wordt de documentsleutel in de zoekindex ingesteld op een unieke id van het bestand. Deze unieke id wordt vervolgens gebruikt om te verwijzen naar het bestand in beide gegevensbronnen. De blob-indexeerfunctie gebruikt standaard de metadata_storage_pathals documentsleutel. De metadata_storage_path eigenschap slaat bijvoorbeeld de volledige URL van het bestand op in Blob Storage https://contoso.blob.core.windows.net/files/paper/Resilience in Azure.pdf. De indexeerfunctie voert Base64-codering uit op de waarde om ervoor te zorgen dat de documentsleutel geen ongeldige tekens bevat. Het resultaat is een unieke documentsleutel, zoals aHR0cHM6...mUucGRm0.

Als u de metadata_storage_path kolom in Table Storage toevoegt, weet u precies tot welke blob de metagegevens in de andere kolommen behoren, zodat u elke PartitionKey waarde RowKey in de tabel kunt gebruiken. U kunt bijvoorbeeld de naam van de blobcontainer gebruiken als de volledige URL van de PartitionKey blob en de met Base64 gecodeerde volledige URL van de blob, RowKeyzodat er ook geen ongeldige tekens in deze sleutels zijn.

Vervolgens kunt u een veldtoewijzing in de tabelindexeerfunctie gebruiken om de metadata_storage_path kolom (of een andere kolom) in Table Storage toe te wijzen aan het metadata_storage_path documentsleutelveld in de zoekindex. Als u de functie base64Encode toepast op de veldtoewijzing, krijgt u uiteindelijk dezelfde documentsleutel (aHR0cHM6...mUucGRm0 in het vorige voorbeeld) en worden de metagegevens uit Table Storage toegevoegd aan hetzelfde document dat is geëxtraheerd uit Blob Storage.

Notitie

In de documentatie van de tabelindexeerfunctie wordt aangegeven dat de PartitionKey en RowKey standaard als documentsleutel samenvoegt. Omdat u al vertrouwt op de documentsleutel zoals geconfigureerd door de blob-indexeerfunctie (dit is de volledige URL met Base64-codering van de blob), maakt u een veldtoewijzing om ervoor te zorgen dat beide indexeerfuncties verwijzen naar hetzelfde document in de zoekindex geschikt en ondersteund voor dit scenario.

U kunt de RowKey (die is ingesteld op de met Base64 gecodeerde volledige URL van de blob) rechtstreeks toewijzen aan de metadata_storage_path documentsleutel, zonder deze afzonderlijk op te slaan en base64-codering als onderdeel van de veldtoewijzing. Als u de niet-gecodeerde URL echter in een afzonderlijke kolom houdt, wordt duidelijk welke blob deze verwijst en kunt u partitie- en rijsleutels kiezen zonder dat dit van invloed is op de zoekindexeerfunctie.

Potentiële gebruikscases

Dit scenario is van toepassing op toepassingen waarvoor de mogelijkheid is om te zoeken naar documenten op basis van hun inhoud en aanvullende metagegevens.

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die u kunt gebruiken om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.

Betrouwbaarheid

Betrouwbaarheid zorgt ervoor dat uw toepassing kan voldoen aan de toezeggingen die u aan uw klanten hebt gedaan. Zie de controlelijst ontwerpbeoordeling voor betrouwbaarheid voor meer informatie.

Azure AI Search biedt een SLA (High Service Level Agreement) voor leesbewerkingen (query's) als u ten minste twee replica's hebt. Het biedt een SLA (High Service Level Agreement) voor updates (het bijwerken van de zoekindexen) als u ten minste drie replica's hebt. U moet daarom ten minste twee replica's inrichten als u wilt dat uw gebruikers betrouwbaar kunnen zoeken en drie als werkelijke wijzigingen in de index ook bewerkingen met hoge beschikbaarheid moeten zijn.

Azure Storage slaat altijd meerdere kopieën van uw gegevens op om deze te beschermen tegen geplande en ongeplande gebeurtenissen. Azure Storage biedt extra redundantieopties voor het repliceren van gegevens in verschillende regio's. Deze beveiligingsmaatregelen zijn van toepassing op gegevens in blob- en tabelopslag.

Beveiliging

Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie de controlelijst ontwerpbeoordeling voor beveiliging voor meer informatie.

Azure AI Search biedt robuuste beveiligingscontroles waarmee u netwerkbeveiliging, verificatie en autorisatie, gegevenslocatie en -beveiliging en beheercontroles kunt implementeren waarmee u beveiliging, privacy en naleving kunt onderhouden.

Gebruik waar mogelijk Microsoft Entra-verificatie om toegang te bieden tot de zoekservice zelf en verbind uw zoekservice met andere Azure-resources (zoals blob- en tabelopslag in dit scenario) met behulp van een beheerde identiteit.

U kunt vanuit de zoekservice verbinding maken met het opslagaccount met behulp van een privé-eindpunt. Wanneer u een privé-eindpunt gebruikt, kunnen de indexeerfuncties een privéverbinding gebruiken zonder dat de blob- en tabelopslag openbaar toegankelijk moeten zijn.

Kostenoptimalisatie

Kostenoptimalisatie gaat over het verminderen van onnodige uitgaven en het verbeteren van operationele efficiëntie. Zie de controlelijst ontwerpbeoordeling voor Kostenoptimalisatie voor meer informatie.

Zie deze vooraf geconfigureerde schatting in de Azure-prijscalculator voor informatie over de kosten voor het uitvoeren van dit scenario. Alle services die hier worden beschreven, worden geconfigureerd in deze schatting. De schatting is voor een workload met een totale documentgrootte van 20 GB in Blob Storage en 1 GB aan metagegevens in Table Storage. Er worden twee zoekeenheden gebruikt om te voldoen aan de SLA voor leesdoeleinden, zoals beschreven in de sectie Betrouwbaarheid van dit artikel. Als u wilt zien hoe de prijzen voor uw specifieke use-case veranderen, wijzigt u de juiste variabelen zodat deze overeenkomen met het verwachte gebruik.

Als u de schatting bekijkt, kunt u zien dat de kosten van blob- en tabelopslag relatief laag zijn. De meeste kosten worden gemaakt door Azure AI Search, omdat hiermee de werkelijke indexering en berekening wordt uitgevoerd voor het uitvoeren van zoekquery's.

Dit scenario implementeren

Als u deze voorbeeldworkload wilt implementeren, raadpleegt u de inhoud en metagegevens van het indexeren van bestanden in Azure AI Search. U kunt dit voorbeeld gebruiken om het volgende te doen:

  • Maak de vereiste Azure-services.
  • Upload enkele voorbeelddocumenten naar Blob Storage.
  • Vul de metagegevenswaarde van de auteur in de blob in.
  • Sla het documenttype en de metagegevenswaarden voor het bedrijf op in Table Storage.
  • Maak de indexeerfuncties die de zoekindex onderhouden.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Hoofdauteur:

Andere inzender:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen