Update Index (Interfejs API REST usługi Azure AI Search)
Modyfikowanie istniejącego indeksu zwykle wymaga upuszczania i ponownego kompilowania indeksu, z wyjątkiem następujących zmian schematu:
Dodawanie nowych pól do kolekcji pól
Dodawanie nowo utworzonych pól do sugestora
Dodawanie lub zmienianie profilów oceniania
Dodawanie lub zmienianie kluczy szyfrowania
Dodawanie nowych analizatorów niestandardowych
Zmienianie opcji mechanizmu CORS
Zmień istniejące pola przy użyciu dowolnej z tych trzech modyfikacji:
- Zmiana
retrievable
(wartości są prawdziwe lub fałszywe) - Zmiana
searchAnalyzer
(używana w czasie zapytania) - Dodawanie lub zmienianie
synonymMaps
(używane w czasie zapytania)
- Zmiana
Aby dodać te aktualizacje, umieść nazwę indeksu na identyfikatorze URI żądania. W treści żądania dołącz w pełni określoną definicję indeksu z modyfikacjami.
PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]
Content-Type: application/json
api-key: [admin key]
Istniejące pola i większość atrybutów pól nie mogą być usuwane ani zmieniane, ani nie można dodawać pól do sugestorów. Do elementu suggester
można dodać tylko nowo utworzone pola.
Po dodaniu nowego pola wszystkie istniejące dokumenty automatycznie otrzymają wartość null dla tego pola. Żadne inne miejsce do magazynowania nie jest używane do momentu wystąpienia jednej z dwóch rzeczy: zostanie podana wartość nowego pola (przy użyciu scalania) lub zostaną dodane nowe dokumenty.
Istniejące analizatory, tokenizatory, filtry tokenów i filtry znaków nie mogą zostać zmienione. Dodanie nowych do już istniejącego indeksu jest możliwe tylko wtedy, gdy flaga allowIndexDowntime
jest włączona w żądaniu aktualizacji indeksu. Ta sama reguła ma zastosowanie podczas dodawania pola wektora początkowego do istniejącego indeksu, który został ustanowiony przy użyciu interfejsu API, który nie obsługuje wyszukiwania wektorowego, szczególnie przed interfejsem API REST w wersji 2023-07-01 (wersja zapoznawcza).
PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]&allowIndexDowntime=true
Ta operacja trwa w trybie offline przez kilka sekund. Indeksowanie i żądania zapytań kończą się niepowodzeniem, gdy indeks jest w trybie offline. Wydajność i operacje zapisu mogą być tymczasowo obniżone przez kilka minut po powrocie indeksu do trybu online.
Parametry identyfikatora URI
Parametr | Opis |
---|---|
nazwa usługi | Wymagane. Ustaw tę wartość na unikatową, zdefiniowaną przez użytkownika nazwę usługi wyszukiwania. |
nazwa indeksu | Wymagane. Identyfikator URI żądania określa nazwę indeksu do zaktualizowania. |
api-version | Wymagane. Zobacz Wersje interfejsu API , aby uzyskać listę obsługiwanych wersji. |
allowIndexDowntime | Opcjonalny. Domyślnie fałsz. Ustaw wartość true dla niektórych aktualizacji, takich jak dodawanie lub modyfikowanie analizatora, tokenizatora, filtru tokenu, filtru char lub właściwości podobieństwa. Indeks jest pobierany w tryb offline podczas aktualizacji, zwykle nie więcej niż kilka sekund. |
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 udostępniany w żądaniu, w przeciwnym razie wymagany jest klucz. Żądania aktualizacji muszą 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
Składnia treści żądania jest taka sama jak w przypadku tworzenia indeksu.
Podczas aktualizowania istniejącego indeksu treść musi zawierać pełną definicję schematu, w tym wszelkie oryginalne definicje, które chcesz zachować. Ogólnie rzecz biorąc, najlepszym wzorcem aktualizacji jest pobranie definicji indeksu za pomocą polecenia GET, zmodyfikowanie go, a następnie zaktualizowanie go za pomocą polecenia PUT.
Reakcja
W przypadku pomyślnego żądania powinien zostać wyświetlony komunikat "204 Brak zawartości".
Domyślnie treść odpowiedzi jest pusta.
Prefer
Jeśli jednak nagłówek żądania ma wartość return=representation
, treść odpowiedzi zawiera kod JSON zaktualizowanego indeksu. W takim przypadku kod stanu powodzenia to "200 OK".