Tworzenie indeksatora (interfejs API REST usługi Azure AI Search)
Indeksator automatyzuje indeksowanie z obsługiwanych źródeł danych platformy Azure, takich jak Azure Storage, Azure SQL Database i Azure Cosmos DB, aby wymienić kilka. Indeksatory używają wstępnie zdefiniowanego źródła danych i indeksu do ustanowienia potoku indeksowania, który wyodrębnia i serializuje dane źródłowe, przekazując je do usługi wyszukiwania na potrzeby pozyskiwania danych. W przypadku wzbogacania sztucznej inteligencji obrazu i tekstu bez struktury indeksatory mogą również akceptować zestaw umiejętności definiujący przetwarzanie sztucznej inteligencji.
Utworzenie indeksatora powoduje dodanie go do usługi wyszukiwania i uruchomienie go. Jeśli żądanie zakończy się pomyślnie, indeks zostanie wypełniony zawartością z możliwością wyszukiwania ze źródła danych.
Możesz użyć metody POST lub PUT na żądanie. W przypadku jednej z nich dokument JSON w treści żądania zawiera definicję obiektu.
POST https://[service name].search.windows.net/indexers?api-version=[api-version]
Content-Type: application/json
api-key: [admin key]
Alternatywnie możesz użyć funkcji PUT i określić nazwę indeksatora w identyfikatorze URI.
PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=[api-version]
Content-Type: application/json
api-key: [admin key]
Protokół HTTPS jest wymagany dla wszystkich żądań obsługi. Jeśli indeksator nie istnieje, zostanie utworzony. Jeśli już istnieje, jest ona aktualizowana do nowej definicji, ale jeśli chcesz wykonać indeksator, musisz wysłać żądanie uruchom indeksatora .
Konfiguracja indeksatora różni się w zależności od typu źródła danych. Aby uzyskać wskazówki dotyczące tworzenia indeksatorów specyficzne dla platformy danych, zacznij od omówienia indeksatorów, który zawiera pełną listę powiązanych artykułów.
Parametry identyfikatora URI
Parametr | Opis |
---|---|
nazwa usługi | Wymagane. Ustaw tę wartość na unikatową, zdefiniowaną przez użytkownika nazwę usługi wyszukiwania. |
nazwa indeksatora | Wymagane dla identyfikatora URI w przypadku używania funkcji PUT. Nazwa musi mieć małe litery, zaczynać się literą lub cyfrą, nie ma ukośników ani kropek i ma mniej niż 128 znaków. nazwa musi zaczynać się literą lub cyfrą, ale pozostała część nazwy może zawierać dowolną literę, cyfrę i kreski, o ile kreski nie są kolejne. |
api-version | Wymagane. Zobacz Wersje interfejsu API , aby uzyskać listę obsługiwanych wersji. |
Nagłówki żądań
W poniższej tabeli opisano wymagane i opcjonalne nagłówki żądań.
Pola | Opis |
---|---|
Content-Type | Wymagane. Ustaw tę wartość na application/json |
api-key | Opcjonalnie, jeśli używasz ról platformy Azure , a token elementu nośnego jest dostarczany w żądaniu, w przeciwnym razie wymagany jest klucz. Tworzenie żądań musi zawierać api-key nagłówek ustawiony na klucz administratora (w przeciwieństwie do klucza zapytania). Aby uzyskać szczegółowe informacje, zobacz Nawiązywanie połączenia z usługą Azure AI Search przy użyciu uwierzytelniania klucza . |
Treść żądania
Źródło danych, indeks i zestaw umiejętności są częścią definicji indeksatora, ale każdy z nich jest niezależnym składnikiem, który może być używany w różnych kombinacjach. Na przykład można użyć tego samego źródła danych z wieloma indeksatorami lub tego samego indeksu z wieloma indeksatorami lub wielu indeksatorów zapisujących w jednym indeksie.
Poniższy kod JSON jest ogólną reprezentacją głównych części definicji.
{
"name" : (optional on PUT; required on POST) "Name of the indexer",
"description" : (optional) "Anything you want, or nothing at all",
"dataSourceName" : (required) "Name of an existing data source",
"targetIndexName" : (required) "Name of an existing index",
"skillsetName" : (required for AI enrichment) "Name of an existing skillset",
"disabled" : (optional) Boolean value indicating whether the indexer is disabled. False by default,
"schedule" : (optional but runs once immediately if unspecified) { ... },
"parameters": { (optional)
"batchSize": null,
"maxFailedItems": 0,
"maxFailedItemsPerBatch": 0,
"base64EncodeKeys": null,
"configuration": { (optional, mostly specific to the data source)
"executionEnvironment": null
}
},
"fieldMappings" : (optional) { ... },
"outputFieldMappings" : (required for AI enrichment) { ... },
"encryptionKey":(optional) { }
}
Żądanie zawiera następujące właściwości:
Właściwość | Opis |
---|---|
name | Wymagane. Nazwa musi mieć małe litery, zaczynać się literą lub cyfrą, nie ma ukośników ani kropek i ma mniej niż 128 znaków. Nazwa musi zaczynać się literą lub cyfrą, ale pozostała część nazwy może zawierać dowolną literę, cyfrę i kreski, o ile kreski nie są kolejne. |
dataSourceName | Wymagane. Nazwa istniejącego źródła danych. Często zawiera właściwości, których indeksator może użyć do wykorzystania właściwości platformy źródłowej. W związku z tym źródło danych przekazywane do indeksatora określa dostępność niektórych właściwości i parametrów, takich jak filtrowanie typów zawartości w obiektach blob platformy Azure. lub limit czasu zapytania dla bazy danych Azure SQL. |
targetIndexName | Wymagane. Nazwa istniejącego schematu indeksu. Definiuje ona kolekcję pól zawierającą wyszukiwanie, filtrowanie, pobieranie i inne przypisania, które określają sposób użycia pola. Podczas indeksowania indeksator przeszukuje źródło danych, opcjonalnie pęka dokumenty i wyodrębnia informacje, serializuje wyniki w formacie JSON i indeksuje ładunek na podstawie schematu zdefiniowanego dla indeksu. |
skillsetName | Wymagane do wzbogacania sztucznej inteligencji. Nazwa istniejącego zestawu umiejętności, jeden na indeksator. Podobnie jak w przypadku źródeł danych i indeksów zestaw umiejętności jest niezależną definicją dołączaną do indeksatora. Można zmienić przeznaczenie zestawu umiejętności z innymi indeksatorami, ale każdy indeksator może używać tylko jednego zestawu umiejętności naraz. |
schedule | Opcjonalne, ale jest uruchamiane raz natychmiast, jeśli nieokreślone i nie jest wyłączone. Harmonogram zawiera interval (wymagane) i startTime (opcjonalnie). Aby uzyskać więcej informacji, zobacz Planowanie indeksatora.
interval określa częstotliwość uruchamiania indeksatora. Najmniejszy dozwolony interwał wynosi pięć minut; najdłuższy jest jeden dzień. Musi być sformatowana jako wartość XSD "dayTimeDuration" (ograniczony podzbiór wartości czasu trwania ISO 8601 ). Wzorzec jest następujący: Przykłady: "P[nD][T[nH][nM]]". PT15M przez co 15 minut, PT2H przez co 2 godziny.
startTime to data/godzina UTC, kiedy indeksator powinien zacząć działać. |
wyłączone | Opcjonalny. Wartość logiczna wskazująca, czy indeksator jest wyłączony. Ustaw tę właściwość, jeśli chcesz utworzyć definicję indeksatora bez natychmiastowego uruchomienia. Wartość false domyślnie. |
parameters | Opcjonalny. Właściwości modyfikowania zachowania środowiska uruchomieniowego.
"batchSize" (liczba całkowita). Określa liczbę elementów odczytywanych ze źródła danych i indeksowanych jako pojedyncza partia w celu zwiększenia wydajności. Wartość domyślna to specyficzne dla źródła (1000 dla usługi Azure SQL Database i Azure Cosmos DB, 10 dla Azure Blob Storage).
"maxFailedItems" (liczba całkowita). Określa liczbę błędów tolerowanych przed uruchomieniem indeksatora jest uznawany za błąd. Wartość domyślna to 0. Ustaw wartość -1, jeśli nie chcesz, aby żadne błędy zatrzymały proces indeksowania. Użyj opcji Pobierz stan indeksatora , aby pobrać informacje o dokumentach, które zakończyły się niepowodzeniem.
"maxFailedItemsPerBatch" (liczba całkowita). Określa liczbę błędów tolerowanych w każdej partii, zanim uruchomienie indeksatora zostanie uznane za błąd. Wartość domyślna to 0. Ustaw wartość -1, jeśli nie chcesz, aby żadne błędy zatrzymały proces indeksowania.
"base64EncodeKey" (Wartość logiczna). Określa, czy kodować klucze dokumentów, które zawierają nieprawidłowe znaki.
"configuration" . Właściwości, które różnią się w zależności od źródła danych.
"executionEnvironment" (ciąg). Zastępuje środowisko wykonywania wybrane przez wewnętrzne procesy systemowe. Jawne ustawienie środowiska Private wykonywania jest wymagane, jeśli indeksatory uzyskują dostęp do zasobów zewnętrznych za pośrednictwem połączeń prywatnych punktów końcowych. To ustawienie jest w obszarze "configuration" . W przypadku pozyskiwania danych to ustawienie jest prawidłowe tylko dla usług aprowizacji jako Podstawowa lub Standardowa (S1, S2, S3). W przypadku przetwarzania zawartości wzbogacania sztucznej inteligencji to ustawienie jest prawidłowe tylko dla S2 i S3. Prawidłowe wartości są bez uwzględniania wielkości liter i składają się z wartości [null lub nieokreślonej], Standard (wartość domyślna) lub Private . |
fieldMappings | Opcjonalny. Jawnie kojarzy pole źródłowe z polem docelowym w indeksie wyszukiwania. Używane, gdy pola źródłowe i docelowe mają różne nazwy lub typy, lub gdy chcesz określić funkcję. Sekcja fieldMappings zawiera sourceFieldName (wymagane, pole w bazowym źródle danych), targetFieldName (wymagane, pole w indeksie) i opcjonalne mappingFunction do kodowania danych wyjściowych. Listę obsługiwanych funkcji i przykładów można znaleźć w artykule Funkcje mapowania pól. Aby uzyskać więcej ogólnych informacji, zobacz Mapowania pól i przekształcenia. |
outputFieldMappings | Wymagane do potoku wzbogacania. Mapuje dane wyjściowe z zestawu umiejętności na indeks lub projekcję. Sekcja outputFieldMappings zawiera sourceFieldName (wymagane, węzeł w drzewie wzbogacania), targetFieldName (wymagane, pole w indeksie) oraz opcjonalny mappingFunction kodowanie danych wyjściowych. Listę obsługiwanych funkcji i przykładów można znaleźć w artykule Funkcje mapowania pól. Aby uzyskać więcej ogólnych informacji, zobacz Jak mapować pola wyjściowe z zestawu umiejętności. |
encryptionKey | Opcjonalny. Służy do szyfrowania definicji indeksatora magazynowanych przy użyciu własnych kluczy zarządzanych w usłudze Azure Key Vault. Dostępne dla rozliczanych usług wyszukiwania utworzonych w dniach lub po 2019-01-01.
Sekcja encryptionKey zawiera zdefiniowaną przez keyVaultKeyName użytkownika (wymaganą), wygenerowaną keyVaultKeyVersion przez system (wymaganą keyVaultUri ) i podając klucz (wymagany, nazywany również nazwą DNS). Przykładowy identyfikator URI może być "https://my-keyvault-name.vault.azure.net".
Opcjonalnie możesz określić accessCredentials , czy nie używasz tożsamości systemu zarządzanego. Właściwości dołączania accessCredentials applicationId (identyfikator aplikacji Tożsamość Microsoft Entra, który otrzymał uprawnienia dostępu do określonej Key Vault platformy Azure) i applicationSecret (klucz uwierzytelniania zarejestrowanej aplikacji). Przykład w następnej sekcji ilustruje składnię. |
Parametry konfiguracji obiektu blob
Kilka parametrów jest wyłącznych dla określonego indeksatora, takiego jak indeksowanie obiektów blob platformy Azure.
Parametr | Wpisz i dozwolone wartości | Użycie |
---|---|---|
"parsingMode" |
Ciąg"text" "delimitedText" "json" "jsonArray" "jsonLines" |
W przypadku obiektów blob platformy Azure ustaw wartość w celu text zwiększenia wydajności indeksowania plików zwykłego tekstu w usłudze Blob Storage. W przypadku obiektów blob CSV ustaw wartość delimitedText , gdy obiekty blob są zwykłymi plikami CSV. W przypadku obiektów blob JSON ustaw wartość na wyodrębnianie json zawartości ustrukturyzowanej lub jsonArray wyodrębnianie poszczególnych elementów tablicy jako oddzielnych dokumentów w usłudze Azure AI Search. Służy jsonLines do wyodrębniania pojedynczych jednostek JSON oddzielonych nową linią jako oddzielnych dokumentów w usłudze Azure AI Search. |
"excludedFileNameExtensions" |
Ciąg lista rozdzielana przecinkami zdefiniowane przez użytkownika |
W przypadku obiektów blob platformy Azure zignoruj wszystkie typy plików na liście. Można na przykład wykluczyć ".png, .png, .mp4", aby pominąć te pliki podczas indeksowania. |
"indexedFileNameExtensions" |
Ciąg lista rozdzielana przecinkami zdefiniowane przez użytkownika |
W przypadku obiektów blob platformy Azure wybiera obiekty blob, jeśli rozszerzenie pliku znajduje się na liście. Można na przykład skupić się na indeksowaniu określonych plików aplikacji ".docx, .pptx, .msg", aby uwzględnić te typy plików. |
"failOnUnsupportedContentType" |
Wartość logiczna true false (wartość domyślna) |
W przypadku obiektów blob platformy Azure ustaw wartość na false , jeśli chcesz kontynuować indeksowanie po napotkaniu nieobsługiwanego typu zawartości i nie znasz z wyprzedzeniem wszystkich typów zawartości (rozszerzeń plików). |
"failOnUnprocessableDocument" |
Wartość logiczna true false (wartość domyślna) |
W przypadku obiektów blob platformy Azure ustaw wartość , false jeśli chcesz kontynuować indeksowanie, jeśli indeksowanie dokumentu zakończy się niepowodzeniem. |
"indexStorageMetadataOnly ForOversizedDocuments" |
Wartość logiczna true false (wartość domyślna) |
W przypadku obiektów blob platformy Azure ustaw tę właściwość na wartość , aby true nadal indeksować metadane magazynu dla zawartości obiektów blob, która jest zbyt duża do przetworzenia. Oversized blobs są domyślnie traktowane jako błędy. Aby uzyskać informacje o limitach rozmiaru obiektów blob, zobacz Limity usługi. |
"delimitedTextHeaders" |
Ciąg lista rozdzielana przecinkami zdefiniowane przez użytkownika |
W przypadku obiektów blob CSV określa rozdzielaną przecinkami listę nagłówków kolumn, przydatną do mapowania pól źródłowych na pola docelowe w indeksie. |
"delimitedTextDelimiter" |
Ciąg pojedynczy znak zdefiniowane przez użytkownika |
W przypadku obiektów blob CSV określa ogranicznik końca wiersza dla plików CSV, w których każdy wiersz rozpoczyna nowy dokument (na przykład "|" ). |
"firstLineContainsHeaders" |
Wartość logiczna true (wartość domyślna) fałsz |
W przypadku obiektów blob CSV wskazuje, że pierwszy (niepusty) wiersz każdego obiektu blob zawiera nagłówki. |
"documentRoot" |
Ciąg ścieżka zdefiniowana przez użytkownika |
W przypadku tablic JSON, biorąc pod uwagę ustrukturyzowany lub częściowo ustrukturyzowany dokument, można określić ścieżkę do tablicy przy użyciu tej właściwości. |
"dataToExtract" |
Ciąg"storageMetadata" "allMetadata" "contentAndMetadata" (domyślne) |
W przypadku obiektów blob platformy Azure: Ustaw wartość na indeksowanie "storageMetadata" tylko standardowych właściwości obiektu blob i metadanych określonych przez użytkownika. Ustaw na wartość , aby wyodrębnić "allMetadata" metadane udostępniane przez podsystem magazynu obiektów blob platformy Azure i metadane specyficzne dla typu zawartości (na przykład metadane unikatowe dla tylko .png plików) są indeksowane. Ustaw wartość , aby wyodrębnić "contentAndMetadata" wszystkie metadane i zawartość tekstową z każdego obiektu blob. W przypadku analizy obrazów w wzbogacaniu sztucznej inteligencji, gdy "imageAction" jest ustawiona wartość inną niż "none" , "dataToExtract" ustawienie informuje indeksatora, które dane mają zostać wyodrębnione z zawartości obrazu. Dotyczy zawartości obrazu osadzonego w .PDF lub innej aplikacji lub plików obrazów, takich jak .jpg i .png, w obiektach blob platformy Azure. |
"imageAction" |
Ciąg"none" "generateNormalizedImages" "generateNormalizedImagePerPage" |
W przypadku obiektów blob platformy Azure ustaw wartość na"none" ignorowanie osadzonych obrazów lub plików obrazów w zestawie danych. Jest to opcja domyślna. W przypadku analizy obrazów w wzbogacaniu sztucznej inteligencji ustaw na "generateNormalizedImages" wyodrębnianie tekstu z obrazów (na przykład wyraz "stop" z znaku zatrzymania ruchu) i osadzanie go w ramach pola zawartości. Podczas analizy obrazu indeksator tworzy tablicę znormalizowanych obrazów w ramach pękania dokumentu i osadza wygenerowane informacje w polu zawartości. Ta akcja wymaga "dataToExtract" ustawienia na "contentAndMetadata" wartość . Znormalizowany obraz odnosi się do dodatkowego przetwarzania, co powoduje jednolite dane wyjściowe obrazu, rozmiar i obracane w celu promowania spójnego renderowania podczas dołączania obrazów do wyników wyszukiwania wizualnego (na przykład zdjęć o tym samym rozmiarze w kontrolce grafu, jak pokazano w pokazie zestawu JFK). Te informacje są generowane dla każdego obrazu podczas korzystania z tej opcji. Jeśli ustawisz wartość "generateNormalizedImagePerPage" , pliki PDF będą traktowane inaczej, zamiast wyodrębniać osadzone obrazy, każda strona będzie renderowana jako obraz i odpowiednio znormalizowana. Ten proces na stronie powinien trwać znacznie dłużej niż "generateNormalizedImages" . Typy plików innych niż PDF będą traktowane tak samo jak w przypadku "generateNormalizedImages" ustawienia. "imageAction" Ustawienie konfiguracji na dowolną wartość inną niż "none" wymaga, aby zestaw umiejętności był również dołączany do tego indeksatora i może być procesem o niskiej sprawności zgodnie z projektem. |
"normalizedImageMaxWidth" "normalizedImageMaxHeight" |
Dowolna liczba całkowita z zakresu od 50 do 10000 | Maksymalna szerokość lub wysokość (w pikselach) odpowiednio dla znormalizowanych obrazów generowanych po "imageAction" ustawieniu. Wartość domyślna to 2000. Wartość domyślna 2000 pikseli dla znormalizowanych obrazów o maksymalnej szerokości i wysokości jest oparta na maksymalnych rozmiarach obsługiwanych przez umiejętności OCR i umiejętności analizy obrazu. Umiejętność OCR obsługuje maksymalną szerokość i wysokość 4200 dla języków innych niż angielski i 10000 dla języka angielskiego. Jeśli zwiększysz maksymalne limity, przetwarzanie może zakończyć się niepowodzeniem w przypadku większych obrazów w zależności od definicji zestawu umiejętności i języka dokumentów. |
"allowSkillsetToReadFileData" |
Wartość logiczna true false (wartość domyślna) |
Ustawienie parametru w "allowSkillsetToReadFileData" celu true spowoduje utworzenie ścieżki /document/file_data , która jest obiektem reprezentującym oryginalne dane pliku pobrane ze źródła danych obiektu blob. Dzięki temu można przekazać oryginalne dane plików do niestandardowej umiejętności przetwarzania w potoku wzbogacania lub umiejętności wyodrębniania dokumentów. Wygenerowany obiekt zostanie zdefiniowany w następujący sposób: { "$type": "file", "data": "BASE64 encoded string of the file" } Ustawienie parametru "allowSkillsetToReadFileData" na true wartość wymaga dołączenie zestawu umiejętności do tego indeksatora i ustawienie parametru "parsingMode" na "default" , "text" lub "json" . |
"pdfTextRotationAlgorithm" |
Ciąg"none" (domyślne)"detectAngles" |
Ustawienie parametru w taki "detectAngles" sposób może pomóc w tworzeniu "pdfTextRotationAlgorithm" lepszego i bardziej czytelnego wyodrębniania tekstu z plików PDF, które w nich obracały tekst. Należy pamiętać, że w przypadku użycia tego parametru może wystąpić niewielka kara za wydajność. Ten parametr dotyczy tylko plików PDF i tylko plików PDF z osadzonym tekstem. Jeśli obrócony tekst pojawi się w osadzonym obrazie w pliku PDF, ten parametr nie ma zastosowania.Ustawienie parametru "pdfTextRotationAlgorithm" na "detectAngles" wartość wymaga ustawienia parametru "parsingMode" na "default" wartość . |
Parametry konfiguracji usługi Azure Cosmos DB
Następujące parametry są specyficzne dla indeksatorów usługi Cosmos DB.
Parametr | Wpisz i dozwolone wartości | Użycie |
---|---|---|
"assumeOrderByHighWaterMarkColumn" |
Wartość logiczna | W przypadku indeksatorów usługi Cosmos DB z interfejsem API SQL ustaw ten parametr, aby zapewnić wskazówkę dla usługi Cosmos DB, że zapytanie używane do zwracania dokumentów do indeksowania jest w rzeczywistości uporządkowane według kolumny _ts . Ustawienie tego parametru zapewnia lepsze wyniki dla scenariuszy indeksowania przyrostowego. |
parametry konfiguracji Azure SQL
Następujące parametry są specyficzne dla usługi Azure SQL Database.
Parametr | Wpisz i dozwolone wartości | Użycie |
---|---|---|
"queryTimeout" |
Ciąg "hh:mm:ss" "00:05:00" |
W przypadku Azure SQL Database ustaw ten parametr, aby zwiększyć limit czasu poza domyślną 5-minutową wartością. |
"convertHighWaterMarkToRowVersion" |
Wartość logiczna | Ustaw ten parametr na wartość "true", aby użyć typu danych rowversion dla kolumny znacznika górnego limitu. Gdy ta właściwość ma wartość true, indeksator odejmuje jedną z wartości rowversion przed uruchomieniem indeksatora. Dzieje się tak, ponieważ widoki z sprzężeniami jeden do wielu mogą zawierać wiersze z zduplikowanymi wartościami rowversion. Odejmowanie jednego zapewnia, że zapytanie indeksatora nie przegapi tych wierszy. |
"disableOrderByHighWaterMarkColumn" |
Wartość logiczna | Ustaw ten parametr na wartość "true", jeśli chcesz wyłączyć zachowanie ORDER BY w zapytaniu używanym do wykrywania zmian. Jeśli używasz zasad wykrywania zmian znacznika górnego, indeksator używa klauzul WHERE i ORDER BY do śledzenia wierszy wymagających indeksowania (WHERE [High Water Mark Column] > [Current High Water Mark Value] ORDER BY [High Water Mark Column] ). Ten parametr wyłącza zachowanie ORDER BY. Indeksowanie zakończy się szybciej, ale kompromis polega na tym, że jeśli indeksator zostanie przerwany z jakiegokolwiek powodu, całe zadanie indeksatora musi zostać powtórzone w całości. |
Reakcja
201 Utworzono dla pomyślnego żądania.
Przykłady
Przykład: Indeksator z parametrami harmonogramu i ogólnymi
Tworzy indeksator, który kopiuje dane z tabeli, ordersds
do której odwołuje się źródło danych do indeksu orders
zgodnie z harmonogramem rozpoczynającym się 1 stycznia 2021 r., i uruchamiany co godzinę. Każde wywołanie indeksatora zakończy się pomyślnie, jeśli indeksowanie w każdej partii nie powiedzie się więcej niż 5 elementów, a nie więcej niż 10 elementów nie zostanie zindeksowanych łącznie.
{
"name" : "myindexer",
"description" : "a cool indexer",
"dataSourceName" : "ordersds",
"targetIndexName" : "orders",
"schedule" : { "interval" : "PT1H", "startTime" : "2021-01-01T00:00:00Z" },
"parameters" : { "maxFailedItems" : 10, "maxFailedItemsPerBatch" : 5 }
}
Uwaga
Jeśli indeksator jest ustawiony na określony harmonogram, ale wielokrotnie kończy się niepowodzeniem w tym samym dokumencie za każdym razem, gdy jest uruchamiany, indeksator rozpocznie działanie w krótszym interwale (maksymalnie co najmniej raz na 24 godziny), dopóki nie zostanie pomyślnie wykonane postęp ponownie. Jeśli uważasz, że rozwiązano problem, który powodował zablokowanie indeksatora w określonym momencie, możesz wykonać resetowanie, a następnie uruchomienie indeksatora na żądanie, a jeśli to pomyślnie spowoduje postęp, indeksator powróci do ustawionego interwału harmonogramu ponownie.
Przykład: Indeksator z parametrami obiektu blob
Indeksator może opcjonalnie przyjmować parametry konfiguracji, które modyfikują zachowania środowiska uruchomieniowego. Parametry konfiguracji są rozdzielane przecinkami w żądaniu indeksatora i są specyficzne dla typu źródła danych. Następujące parametry konfiguracji zawierają instrukcje używane do indeksowania obiektów blob.
{
"name" : "my-blob-indexer-for-cognitive-search",
... other indexer properties
"parameters" :
{
"maxFailedItems" : "15",
"batchSize" : "100",
"configuration" :
{
"parsingMode" : "json",
"indexedFileNameExtensions" : ".json, .jpg, .png",
"imageAction" : "generateNormalizedImages",
"dataToExtract" : "contentAndMetadata" ,
"executionEnvironment": "Standard"
}
}
}
Przykład: Indeksator z mapowaniami pól
Mapowanie pola _id
tabeli źródłowej na "id"
pole w indeksie wyszukiwania. Usługa Azure AI Search nie zezwala na rozpoczęcie nazwy pola od znaku podkreślenia. Mapowanie pól może rozpoznawać rozbieżności nazw. Nazwy pól źródłowych i docelowych są niewrażliwe na wielkość liter. Aby uzyskać więcej informacji, zobacz Mapowania pól i przekształcenia.
"fieldMappings" : [
{ "sourceFieldName" : "_id", "targetFieldName" : "id" },
{ "sourceFieldName" : "_timestamp", "targetFieldName" : "timestamp" }
]
Przykład: Indeksator ze wzbogacaniem sztucznej inteligencji
Demonstruje wzbogacanie sztucznej inteligencji wskazane przez odwołanie do elementu skillset
i outputFieldMappings
.
Zestawy umiejętności to zasoby wysokiego poziomu zdefiniowane oddzielnie. Ten przykład jest skrótem definicji indeksatora w samouczku wzbogacania sztucznej inteligencji.
{
"name":"demoindexer",
"dataSourceName" : "demodata",
"targetIndexName" : "demoindex",
"skillsetName" : "demoskillset",
"fieldMappings" : [
{
"sourceFieldName" : "content",
"targetFieldName" : "content"
}
],
"outputFieldMappings" :
[
{
"sourceFieldName" : "/document/organizations",
"targetFieldName" : "organizations"
},
],
"parameters":
{
"maxFailedItems":-1,
"configuration":
{
"dataToExtract": "contentAndMetadata",
"imageAction": "generateNormalizedImages"
}
}
}
Przykład: Indeksator z mapowaniami pól zestawu umiejętności i danych wyjściowych
W scenariuszach wzbogacania sztucznej inteligencji, w których zestaw umiejętności jest powiązany z indeksatorem, należy dodać, outputFieldMappings
aby skojarzyć dowolne dane wyjściowe kroku wzbogacania, który dostarcza zawartość do pola z możliwością wyszukiwania w indeksie. Element sourceFieldName
jest węzłem w drzewie wzbogacania. Może to być struktura złożona utworzona podczas wzbogacania z dwóch oddzielnych pól w dokumencie źródłowym. Jest targetFieldName
to pole w indeksie wyszukiwania. Aby uzyskać więcej informacji, zobacz Jak mapować pola wyjściowe z zestawu umiejętności.
"outputFieldMappings" : [
{
"sourceFieldName" : "/document/organizations",
"targetFieldName" : "organizations"
},
{
"sourceFieldName" : "/document/pages/*/keyPhrases/*",
"targetFieldName" : "keyphrases"
},
{
"sourceFieldName": "/document/languageCode",
"targetFieldName": "language",
"mappingFunction": null
}
]
Przykład: klucze szyfrowania
Klucze szyfrowania to klucze zarządzane przez klienta używane do dodatkowego szyfrowania. Aby uzyskać więcej informacji, zobacz Szyfrowanie przy użyciu kluczy zarządzanych przez klienta w usłudze Azure Key Vault.
{
"name" : "myindexer",
"description" : "a cool indexer",
"dataSourceName" : "ordersds",
"targetIndexName" : "orders",
"schedule" : { "interval" : "PT1H", "startTime" : "2021-01-01T00:00:00Z" },
"parameters" : { "maxFailedItems" : 10, "maxFailedItemsPerBatch" : 5 },
"encryptionKey": (optional) {
"keyVaultKeyName": "Name of the Azure Key Vault key used for encryption",
"keyVaultKeyVersion": "Version of the Azure Key Vault key",
"keyVaultUri": "URI of Azure Key Vault, also referred to as DNS name, that provides the key. An example URI might be https://my-keyvault-name.vault.azure.net",
"accessCredentials": (optional, only if not using managed system identity) {
"applicationId": "Microsoft Entra ID application ID that was granted access permissions to your specified Azure Key Vault",
"applicationSecret": "Authentication key of the registered application)"}
}
}