Wyodrębnianie danych za pomocą indeksatora
W centrum rozwiązań usługi Azure AI Search jest tworzenie indeksu Indeks zawiera zawartość z możliwością wyszukiwania i jest tworzony i aktualizowany przez indeksator.
Proces indeksowania zaczyna się od źródła danych: miejsca przechowywania danych źródłowych; na przykład kontener Azure z dokumentami, baza danych lub inny magazyn.
Indeksator automatyzuje wyodrębnianie i indeksowanie pól danych za pomocą potoku wzbogacania, w którym stosuje łamanie dokumentów w celu wyodrębnienia zawartości dokumentów źródłowych i stosuje kroki przyrostowe w celu utworzenia dokumentu hierarchicznego (opartego na formacie JSON) z wymaganymi polami definicji indeksu.
Wynikiem jest wypełniony indeks, który można odpytować w celu zwrócenia określonych pól z dokumentów spełniających kryteria zapytania.
Sposób konstruowania dokumentów podczas indeksowania
Proces indeksowania działa przez utworzenie dokumentu dla każdej indeksowanej jednostki. Podczas indeksowania iteracyjny potok wzbogacania kompiluje dokumenty, które łączą metadane ze źródła danych z wzbogaconymi polami wyodrębnianymi lub generowanymi przez umiejętności. Każdy indeksowany dokument można traktować jako strukturę JSON, która początkowo składa się z dokumentu z polami indeksu mapowanych na pola wyodrębnione bezpośrednio z danych źródłowych, w następujący sposób:
-
dokument
- nazwa_przechowywania_metadanych
- metadata_author
- zawartość
Gdy dokumenty w źródle danych zawierają obrazy, można skonfigurować indeksator tak, aby wyodrębnił dane obrazu i umieścił każdy obraz w kolekcji normalized_images w następujący sposób:
-
dokument
- nazwa_przechowywania_metadanych
- metadata_author
- zawartość
-
normalized_images
- image0
- obraz1
Normalizacja danych obrazu w ten sposób umożliwia użycie kolekcji obrazów jako danych wejściowych dla umiejętności wyodrębniania informacji z danych obrazu.
Każda umiejętność dodaje pola do dokumentu, więc na przykład umiejętność, która wykrywa język , w którym jest zapisywany dokument, może przechowywać jego dane wyjściowe w polu języka , w następujący sposób:
-
dokument
- nazwa_przechowywania_metadanych
- metadata_author
- zawartość
-
normalized_images
- image0
- obraz1
- Język
Dokument jest ustrukturyzowany hierarchicznie, a umiejętności są stosowane do określonego kontekstu w hierarchii, umożliwiając uruchamianie umiejętności dla każdego elementu na określonym poziomie dokumentu. Na przykład można uruchomić umiejętności optycznego rozpoznawania znaków (OCR) dla każdego obrazu w kolekcji znormalizowanych obrazów, aby wyodrębnić dowolny tekst, który zawiera:
-
dokument
- nazwa_przechowywania_metadanych
- metadata_author
- zawartość
-
normalized_images
-
image0
- Tekst
-
obraz1
- Tekst
-
image0
- Język
Pola wyjściowe z każdej umiejętności mogą być używane jako dane wejściowe dla innych umiejętności w dalszej części potoku, które z kolei przechowują swoje dane wyjściowe w strukturze dokumentów. Na przykład możemy użyć umiejętności scalania, aby połączyć oryginalną zawartość tekstową z tekstem wyodrębnionym z każdego obrazu i utworzyć nowe pole merged_content, zawierające cały tekst w dokumencie, w tym tekst z obrazów.
-
dokument
- nazwa_przechowywania_metadanych
- metadata_author
- zawartość
-
normalized_images
-
image0
- Tekst
-
obraz1
- Tekst
-
image0
- Język
- zawartość_połączona
Pola w końcowej strukturze dokumentu są odwzorowywane na pola indeksu przez indeksator na jeden z dwóch sposobów:
- Pola wyodrębnione bezpośrednio z danych źródłowych są mapowane na pola indeksu. Te mapowania mogą być niejawne (pola są automatycznie mapowane na pola o tej samej nazwie w indeksie) lub jawne (mapowanie jest definiowane w celu dopasowania pola źródłowego do pola indeksu, często w celu zmiany nazwy pola na coś bardziej przydatnego lub zastosowania funkcji do wartości danych podczas mapowania).
- Pola wyjściowe z umiejętności w zestawie umiejętności są jawnie mapowane z ich hierarchicznej lokalizacji w danych wyjściowych do pola docelowego w indeksie.