Tento článek ukazuje, jak vytvořit vyhledávací službu, která uživatelům umožňuje vyhledávat dokumenty na základě obsahu dokumentu kromě všech metadat přidružených k dokumentu.
Tuto službu můžete implementovat pomocí několika indexerů ve službě Azure AI Search.
Tento článek používá ukázkovou úlohu k předvedení, jak vytvořit jeden index vyhledávání založený na dokumentech ve službě Azure Blob Storage. Metadata souboru se ukládají ve službě Azure Table Storage.
Architektura
Stáhněte si soubor PowerPointu této architektury.
Tok dat
- Dokumenty jsou uložené ve službě Blob Storage, pravděpodobně společně s omezeným množstvím metadat (například autor dokumentu).
- Další metadata jsou uložená ve službě Table Storage, která můžou pro každý dokument ukládat výrazně více informací.
- Indexer přečte obsah každého souboru společně s metadaty objektů blob a uloží data do indexu vyhledávání.
- Další indexer přečte další metadata z tabulky a uloží je do stejného indexu vyhledávání.
- Vyhledávací dotaz se odešle do vyhledávací služby. Dotaz vrátí odpovídající dokumenty na základě obsahu dokumentu i metadat dokumentu.
Komponenty
- Blob Storage poskytuje nákladově efektivní cloudové úložiště pro data souborů, včetně dat ve formátech, jako jsou PDF, HTML a CSV, a v dokumentech Microsoftu 365.
- Table Storage poskytuje úložiště pro nerelační strukturovaná data. V tomto scénáři se používají k ukládání metadat pro každý dokument.
- Azure AI Search je plně spravovaná vyhledávací služba, která poskytuje infrastrukturu, rozhraní API a nástroje pro vytváření bohatého vyhledávacího prostředí.
Alternativy
Tento scénář používá indexery ve službě Azure AI Search k automatickému zjišťování nového obsahu v podporovaných zdrojích dat, jako je blob a table Storage, a pak ho přidá do indexu vyhledávání. Alternativně můžete pomocí rozhraní API poskytovaných službou Azure AI Search odesílat data do indexu vyhledávání. Pokud to ale uděláte, musíte napsat kód pro vložení dat do vyhledávacího indexu a také parsovat a extrahovat text z binárních dokumentů, které chcete prohledávat. Indexer blob Storage podporuje mnoho formátů dokumentů, což výrazně zjednodušuje proces extrakce a indexování textu.
Pokud používáte indexery, můžete volitelně rozšířit data jako součást kanálu indexování. Pomocí služeb Azure AI můžete například provádět optické rozpoznávání znaků (OCR) nebo vizuální analýzu obrázků v dokumentech, rozpoznávat jazyk dokumentů nebo překládat dokumenty. Můžete také definovat vlastní dovednosti pro obohacení dat způsoby, které jsou relevantní pro váš obchodní scénář.
Tato architektura používá úložiště objektů blob a tabulek, protože jsou nákladově efektivní a efektivní. Tento návrh také umožňuje kombinované ukládání dokumentů a metadat v jednom účtu úložiště. Mezi alternativní podporované zdroje dat pro samotné dokumenty patří Azure Data Lake Storage a Azure Files. Metadata dokumentů se dají ukládat do jakéhokoli jiného podporovaného zdroje dat, který obsahuje strukturovaná data, jako je Azure SQL Database a Azure Cosmos DB.
Podrobnosti scénáře
Vyhledávání obsahu souboru
Toto řešení umožňuje uživatelům vyhledávat dokumenty na základě obsahu souboru i dalších metadat uložených samostatně pro každý dokument. Kromě hledání textového obsahu dokumentu může uživatel chtít vyhledat autora dokumentu, typ dokumentu (například papír nebo sestavu) nebo jeho obchodní dopad (vysoký, střední nebo nízký).
Azure AI Search je plně spravovaná vyhledávací služba, která umožňuje vytvářet vyhledávací indexy , které obsahují informace, které chcete uživatelům povolit hledání.
Dokumenty, které se v tomto scénáři prohledávají, jsou uložené ve službě Blob Storage. Z tohoto důvodu můžete pomocí integrovaného indexeru služby Blob Storage ve službě Azure AI Search automaticky extrahovat text z dokumentu a přidat jejich obsah do indexu vyhledávání.
Prohledávání metadat souboru
Pokud chcete zahrnout další informace o dokumentu, můžete k objektům blob přímo přidružit metadata bez použití samostatného úložiště. Integrovaný indexer vyhledávání ve službě Blob Storage může tato metadata dokonce číst a umísťovat je do indexu vyhledávání. To umožňuje uživatelům hledat metadata spolu s obsahem souboru. Množství metadat je však omezeno na 8 kB na objekt blob, takže množství informací, které můžete umístit do každého objektu blob, je poměrně malé. Můžete se rozhodnout ukládat jenom ty nejdůležitější informace přímo do objektů blob. V tomto scénáři je v objektu blob uložen pouze autor dokumentu.
Pokud chcete toto omezení úložiště překonat, můžete umístit další metadata do jiného zdroje dat, který má podporovaný indexer, jako je Table Storage. Typ dokumentu, obchodní dopad a další hodnoty metadat můžete přidat jako samostatné sloupce v tabulce. Pokud nakonfigurujete integrovaný indexer služby Table Storage tak, aby cílil na stejný index vyhledávání jako indexer objektů blob, zkombinuje se metadata úložiště objektů blob a tabulek pro každý dokument v indexu vyhledávání.
Použití více zdrojů dat pro jeden index vyhledávání
Aby se zajistilo, že oba indexery odkazují na stejný dokument v indexu vyhledávání, nastaví se klíč dokumentu v indexu vyhledávání na jedinečný identifikátor souboru. Tento jedinečný identifikátor se pak použije k odkazování na soubor v obou zdrojích dat. Indexer objektů blob ve výchozím nastavení používá metadata_storage_path
jako klíč dokumentu. Vlastnost metadata_storage_path
ukládá úplnou adresu URL souboru ve službě Blob Storage, https://contoso.blob.core.windows.net/files/paper/Resilience in Azure.pdf
například . Indexer provádí kódování Base64 s hodnotou, aby se zajistilo, že v klíči dokumentu nejsou žádné neplatné znaky. Výsledkem je jedinečný klíč dokumentu, například aHR0cHM6...mUucGRm0
.
Pokud přidáte sloupec ve službě Table Storage, víte přesně, ke kterému objektu metadata_storage_path
blob patří metadata v ostatních sloupcích, abyste mohli v tabulce použít libovolnou PartitionKey
hodnotu.RowKey
Jako úplnou adresu URL objektu blob můžete například použít název PartitionKey
kontejneru objektů blob a úplnou adresu URL objektu blob zakódovanou v base64, RowKey
abyste zajistili, že v těchto klíčích nejsou žádné neplatné znaky.
Pak můžete pomocí mapování polí v indexeru tabulky namapovat metadata_storage_path
sloupec (nebo jiný sloupec) v Table Storage na metadata_storage_path
pole klíče dokumentu v indexu vyhledávání. Pokud použijete funkci base64Encode pro mapování polí, skončíte se stejným klíčem dokumentu (aHR0cHM6...mUucGRm0
v předchozím příkladu) a metadata z Table Storage se přidají do stejného dokumentu, který se extrahoval ze služby Blob Storage.
Poznámka:
Dokumentace k indexeru tabulky uvádí, že zřetězí PartitionKey
a RowKey
jako klíč dokumentu ve výchozím nastavení. Vzhledem k tomu, že se už spoléháte na klíč dokumentu nakonfigurovaný indexerem objektů blob (což je úplná adresa URL objektu blob s kódováním Base64), vytvořte mapování polí, které zajistí, aby oba indexery odkazovaly na stejný dokument v indexu vyhledávání a podporovaly ho pro tento scénář.
Alternativně můžete přímo namapovat RowKey
(která je nastavená na úplnou adresu URL objektu blob zakódovanou v base64) na metadata_storage_path
klíč dokumentu, aniž byste ho ukládal samostatně a kódování Base64 jako součást mapování polí. Zachování nezakódované adresy URL v samostatném sloupci ale vysvětluje, na který objekt blob odkazuje, a umožňuje zvolit libovolné klíče oddílů a řádků, aniž by to mělo vliv na indexer vyhledávání.
Potenciální případy použití
Tento scénář platí pro aplikace, které vyžadují možnost vyhledávat dokumenty na základě jejich obsahu a dalších metadat.
Důležité informace
Tyto aspekty implementují pilíře dobře architektuře Azure, což je sada hlavních principů, které můžete použít ke zlepšení kvality úlohy. Další informace naleznete v tématu Microsoft Azure Well-Architected Framework.
Spolehlivost
Spolehlivost zajišťuje, aby vaše aplikace splňovala závazky, které uděláte pro své zákazníky. Další informace najdete v kontrolním seznamu pro kontrolu návrhu pro spolehlivost.
Azure AI Search poskytuje smlouvu o vysoké úrovni služeb (SLA) pro čtení (dotazování), pokud máte aspoň dvě repliky. Poskytuje smlouvu SLA (High Service Level Agreement) pro aktualizace (aktualizace indexů vyhledávání), pokud máte aspoň tři repliky. Proto byste měli zřídit alespoň dvě repliky, pokud chcete, aby vaši uživatelé mohli spolehlivě vyhledávat, a tři, pokud skutečné změny indexu musí být také operace s vysokou dostupností.
Azure Storage vždy ukládá několik kopií vašich dat , aby bylo možné je chránit před plánovanými a neplánovanými událostmi. Azure Storage poskytuje další možnosti redundance pro replikaci dat napříč oblastmi. Tato bezpečnostní opatření platí pro data v úložišti objektů blob a tabulek.
Zabezpečení
Zabezpečení poskytuje záruky proti záměrným útokům a zneužití cenných dat a systémů. Další informace najdete v kontrolním seznamu pro kontrolu návrhu zabezpečení.
Azure AI Search poskytuje robustní kontrolní mechanismy zabezpečení, které vám pomůžou implementovat zabezpečení sítě, ověřování a autorizaci, rezidenci dat a ochranu a kontrolní mechanismy pro správu, které pomáhají udržovat zabezpečení, ochranu osobních údajů a dodržování předpisů.
Kdykoli je to možné, použijte ověřování Microsoft Entra k poskytnutí přístupu k samotné vyhledávací službě a připojení vyhledávací služby k dalším prostředkům Azure (jako je blob a table Storage v tomto scénáři) pomocí spravované identity.
Pomocí privátního koncového bodu se můžete připojit z vyhledávací služby k účtu úložiště. Při použití privátního koncového bodu můžou indexery používat privátní připojení, aniž by vyžadovaly veřejný přístup k úložišti objektů blob a tabulek.
Optimalizace nákladů
Optimalizace nákladů se týká snížení zbytečných výdajů a zlepšení efektivity provozu. Další informace najdete v kontrolním seznamu pro kontrolu návrhu pro optimalizaci nákladů.
Informace o nákladech na provoz tohoto scénáře najdete v tomto předem nakonfigurovaném odhadu v cenové kalkulačce Azure. V tomto odhadu jsou nakonfigurované všechny zde popsané služby. Odhad je pro úlohu, která má celkovou velikost dokumentu 20 GB ve službě Blob Storage a 1 GB metadat v Table Storage. Dvě jednotky vyhledávání slouží k uspokojení smlouvy SLA pro účely čtení, jak je popsáno v části Spolehlivost tohoto článku. Pokud chcete zjistit, jak by se ceny pro váš konkrétní případ použití změnily, změňte příslušné proměnné tak, aby odpovídaly očekávanému využití.
Pokud odhad zkontrolujete, uvidíte, že náklady na úložiště objektů blob a tabulek jsou relativně nízké. Azure AI Search nabíjejí většinu nákladů, protože provádí skutečné indexování a výpočetní prostředky pro spouštění vyhledávacích dotazů.
Nasazení tohoto scénáře
Pokud chcete tuto ukázkovou úlohu nasadit, přečtěte si téma Indexování obsahu a metadat souborů ve službě Azure AI Search. Tuto ukázku můžete použít k:
- Vytvořte požadované služby Azure.
- Nahrajte několik ukázkových dokumentů do služby Blob Storage.
- Naplňte hodnotu metadat autora objektu blob.
- Uložte typ dokumentu a hodnoty metadat dopadu na firmu ve službě Table Storage.
- Vytvořte indexery, které udržují index vyhledávání.
Přispěvatelé
Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.
Hlavní autor:
- Jelle Druyts | Hlavní technik zákaznického prostředí
Další přispěvatel:
- Mick Alberts | Technický spisovatel
Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.
Další kroky
- Začínáme s Azure AI Search
- Zvýšení levnosti pomocí sémantického vyhledávání ve službě Azure AI Search
- Filtry zabezpečení pro oříznutí výsledků ve službě Azure AI Search
- Kurz: Indexování z více zdrojů dat pomocí sady .NET SDK