Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W usłudze Azure AI Search możesz użyć metody Create or Update Index (interfejsu API REST) do przechowywania wektorów w indeksie wyszukiwania. Indeks wektorowy jest definiowany przez schemat indeksu, który zawiera pola wektorów, pola niewektorowe i sekcję konfiguracji wektora.
Podczas tworzenia indeksu wektorowego niejawnie tworzy się miejsce osadzania , które służy jako korpus zapytań wektorowych. Przestrzeń osadzania składa się ze wszystkich pól wektorowych wypełnionych osadzeniami z tego samego modelu osadzania. W czasie wykonywania zapytania system porównuje zapytanie wektorowe z indeksowanym wektorami, zwracając wyniki na podstawie podobieństwa semantycznego.
Aby indeksować wektory w usłudze Azure AI Search, wykonaj następujące kroki:
- Zacznij od podstawowej definicji schematu.
- Dodaj algorytmy wektorów i opcjonalną kompresję.
- Dodaj definicje pól wektorowych.
- Załaduj wstępnie wektoryzowane dane jako oddzielny krok lub użyj zintegrowanej wektoryzacji w celu fragmentowania i osadzania danych podczas indeksowania.
W tym artykule użyto architektury REST na potrzeby ilustracji. Po zapoznaniu się z podstawowym przepływem pracy przejdź do przykładów kodu zestawu Azure SDK w repozytorium azure-search-vector-samples , który zawiera wskazówki dotyczące używania wektorów w kodzie testowym i produkcyjnym.
Napiwek
Możesz również użyć witryny Azure Portal do utworzenia indeksu wektorowego i wypróbowania zintegrowanego fragmentowania i wektoryzacji danych.
Wymagania wstępne
Usługa Azure AI Search w dowolnym regionie i na dowolnym poziomie. Jeśli planujesz używać zintegrowanej wektoryzacji z umiejętnościami i wektoryzatorami sztucznej inteligencji platformy Azure, usługa Azure AI Search musi znajdować się w tym samym regionie co modele osadzania hostowane w usłudze Azure AI Vision.
Dokumenty źródłowe muszą mieć wektorowe osadzanie w celu przekazania do indeksu. W tym kroku można również użyć zintegrowanej wektoryzacji .
Należy znać limit wymiarów modelu, który tworzy osadzanie, aby można było przypisać ten limit do pola wektora. W przypadku text-embedding-ada-002 wymiary są ustalone na 1536. W przypadku text-embedding-3-small lub text-embedding-3-large, wymiary obejmują odpowiednio od 1 do 1536 i od 1 do 3072.
Należy wiedzieć, jakiej metryki podobieństwa użyć. W przypadku osadzania modeli w usłudze Azure OpenAI podobieństwo jest obliczane przy użyciu metody
cosine
.Musisz wiedzieć, jak utworzyć indeks. Schemat zawsze zawiera pole klucza dokumentu, pola wyszukiwania lub filtrów oraz inne konfiguracje zachowań wymaganych podczas indeksowania i zapytań.
Ograniczenia
Niektóre usługi wyszukiwania utworzone przed styczniem 2019 r. nie mogą utworzyć indeksu wektorowego. Jeśli dotyczy to Ciebie, utwórz nową usługę do używania wektorów.
Przygotowywanie dokumentów do indeksowania
Przed indeksowaniem zmontuj ładunek dokumentu zawierający pola danych wektorowych i niewektorowych. Struktura dokumentu musi być zgodna z kolekcją pól schematu indeksu.
Upewnij się, że dokumenty źródłowe zawierają następującą zawartość:
Zawartość | Opis |
---|---|
Unikatowy identyfikator | Pole lub właściwość metadanych, która jednoznacznie identyfikuje każdy dokument. Wszystkie indeksy wyszukiwania wymagają klucza dokumentu. Aby spełnić wymagania dotyczące klucza dokumentu, dokument źródłowy musi mieć jedno pole lub właściwość jednoznacznie identyfikującą go w indeksie. Jeśli indeksujesz obiekty blob, może to być metadata_storage_path, który jednoznacznie identyfikuje każdy obiekt blob. Jeśli indeksujesz z bazy danych, może to być klucz podstawowy. To pole źródłowe musi być mapowane na pole indeksu typu Edm.String i key=true w indeksie wyszukiwania. |
Zawartość niewektorowa | Podaj inne pola z zawartością czytelną dla człowieka. Zawartość czytelna dla człowieka jest przydatna w przypadku odpowiedzi na zapytanie i zapytań hybrydowych obejmujących wyszukiwanie pełnotekstowe lub klasyfikację semantyczną w tym samym żądaniu. Jeśli używasz modelu uzupełniania czatu, większość modeli, takich jak ChatGPT, oczekuje tekstu czytelnego dla człowieka i nie akceptuje nieprzetworzonych wektorów jako danych wejściowych. |
Zawartość wektorowa | Wektoryzowana reprezentacja zawartości niewektorowej do użycia w czasie zapytania. Wektor to tablica liczb zmiennoprzecinkowych o pojedynczej precyzji generowanych przez model osadzania. Każde pole wektorów zawiera tablicę wygenerowaną przez model. Istnieje jedno osadzanie dla pola, w którym pole jest polem najwyższego poziomu (a nie częścią typu zagnieżdżonego lub złożonego). W przypadku prostej integracji zalecamy osadzanie modeli w usłudze Azure OpenAI, takich jak osadzanie tekstu-3 dla dokumentów tekstowych lub interfejs API REST pobierania obrazów dla obrazów i osadzania wielomodalnego. Jeśli możesz użyć indeksatorów i zestawów umiejętności, rozważ zintegrowaną wektoryzację, która koduje obrazy i tekst podczas indeksowania. Definicje pól są przeznaczone dla pól wektorowych, ale przychodzące dane źródłowe mogą być tekstem lub obrazami, które są konwertowane na tablice wektorowe podczas indeksowania. |
Indeks wyszukiwania powinien zawierać pola i zawartość dla wszystkich scenariuszy zapytań, które chcesz obsługiwać. Załóżmy, że chcesz wyszukiwać lub filtrować nazwy produktów, wersje, metadane lub adresy. W tym przypadku wyszukiwanie podobieństwa wektorów nie jest szczególnie przydatne. Wyszukiwanie słów kluczowych, wyszukiwanie geograficzne lub filtry iterujące zawartość dosłowną byłoby lepszym wyborem. Indeks wyszukiwania obejmujący zarówno pola wektorowe, jak i niewektorowe, zapewnia maksymalną elastyczność tworzenia zapytań i kompozycji odpowiedzi.
Krótki przykład ładunku dokumentów, który zawiera pola wektorowe i niewektorowe, zobacz sekcję dane wektora obciążenia w tym artykule.
Rozpoczynanie od indeksu podstawowego
Zacznij od minimalnego schematu, aby mieć definicję do pracy przed dodaniem konfiguracji wektorowej i pól wektorowych. Prosty indeks może wyglądać w poniższym przykładzie. Aby uzyskać więcej informacji na temat schematu indeksu, zobacz Tworzenie indeksu wyszukiwania.
Zwróć uwagę, że indeks ma wymaganą nazwę, wymagany klucz dokumentu ("key": true
) i pola dla zawartości czytelnej dla człowieka w postaci zwykłego tekstu. Często zdarza się, że przygotowuje się wersję czytelną dla człowieka zawartości, którą zamierzasz wektoryzować. Jeśli na przykład masz fragment tekstu z pliku PDF, schemat indeksu powinien zawierać pole fragmentów zwykłego tekstu i drugie pole dla fragmentów wektoryzowanych.
Oto podstawowy indeks z "name"
, kolekcją "fields"
oraz niektórymi innymi konstrukcjami na potrzeby dodatkowej konfiguracji:
POST https://[servicename].search.windows.net/indexes?api-version=[api-version]
{
"name": "example-index",
"fields": [
{ "name": "documentId", "type": "Edm.String", "key": true, "retrievable": true, "searchable": true, "filterable": true },
{ "name": "myHumanReadableNameField", "type": "Edm.String", "retrievable": true, "searchable": true, "filterable": false, "sortable": true, "facetable": false },
{ "name": "myHumanReadableContentField", "type": "Edm.String", "retrievable": true, "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "en.microsoft" },
],
"analyzers": [ ],
"scoringProfiles": [ ],
"suggesters": [ ],
"vectorSearch": [ ]
}
Dodawanie konfiguracji wyszukiwania wektorowego
Następnie dodaj konfigurację "vectorSearch"
do schematu. Warto określić konfigurację przed definicjami pól, ponieważ zdefiniowane w tym miejscu profile stają się częścią definicji pola wektorowego. W schemacie konfiguracja wektorów jest zwykle wstawiana po kolekcji pól, na przykład po "analyzers"
, "scoringProfiles"
i "suggesters"
. Jednak kolejność nie ma znaczenia.
Konfiguracja wektorów obejmuje:
-
vectorSearch.algorithms
używane podczas indeksowania w celu utworzenia informacji o "najbliższym sąsiadie" między węzłami wektorów. -
vectorSearch.compressions
w przypadku kwantyzacji skalarnej lub binarnej, nadpróbkowania i ponownego uporządkowania przy użyciu oryginalnych wektorów. -
vectorSearch.profiles
do określania wielu kombinacji algorytmów i konfiguracji kompresji.
2024-07-01 jest ogólnie dostępny. Obsługuje on konfigurację wektorów, która ma:
- Hierarchiczny nawigowalny algorytm małego świata (HNSW).
- Wyczerpujący algorytm K najbliższego sąsiada (KNN).
- Kompresja skalarna.
- Kompresja binarna, która jest dostępna tylko w wersji 2024-07-01 i nowszych pakietach zestawu Azure SDK.
- Nadpróbkowanie.
- Ponowne sortowanie przy użyciu oryginalnych wektorów.
Jeśli wybierzesz opcję HNSW w polu, możesz wybrać wyczerpującą nazwę KNN w czasie zapytania. Jednak odwrotnie nie działa. Jeśli zdecydujesz się na wyczerpujące indeksowanie, nie możesz później zażądać wyszukiwania HNSW, ponieważ dodatkowe struktury danych, które umożliwiają przybliżone wyszukiwanie, nie istnieją.
Pamiętaj, aby mieć strategię wektoryzacji zawartości. Zalecamy zintegrowaną wektoryzację i wektoryzatory czasu zapytania na potrzeby wbudowanego kodowania.
Użyj interfejsu API REST tworzenia lub aktualizowania indeksu , aby utworzyć indeks.
Dodaj sekcję
vectorSearch
w indeksie, która określa algorytmy wyszukiwania używane do tworzenia miejsca osadzania."vectorSearch": { "compressions": [ { "name": "scalar-quantization", "kind": "scalarQuantization", "rerankWithOriginalVectors": true, "defaultOversampling": 10.0, "scalarQuantizationParameters": { "quantizedDataType": "int8" } }, { "name": "binary-quantization", "kind": "binaryQuantization", "rerankWithOriginalVectors": true, "defaultOversampling": 10.0 } ], "algorithms": [ { "name": "hnsw-1", "kind": "hnsw", "hnswParameters": { "m": 4, "efConstruction": 400, "efSearch": 500, "metric": "cosine" } }, { "name": "hnsw-2", "kind": "hnsw", "hnswParameters": { "m": 8, "efConstruction": 800, "efSearch": 800, "metric": "hamming" } }, { "name": "eknn", "kind": "exhaustiveKnn", "exhaustiveKnnParameters": { "metric": "euclidean" } } ], "profiles": [ { "name": "vector-profile-hnsw-scalar", "compression": "scalar-quantization", "algorithm": "hnsw-1" } ] }
Kluczowe punkty:
Nazwy każdej konfiguracji kompresji, algorytmu i profilu muszą być unikatowe dla jego typu w indeksie.
vectorSearch.compressions
może mieć wartośćscalarQuantization
lubbinaryQuantization
. Kwantyzacja skalarna kompresuje wartości zmiennoprzecinkowe do węższych typów danych. Kwantyzacja binarna konwertuje liczby zmiennoprzecinkowe na 1-bitowe wartości binarne.vectorSearch.compressions.rerankWithOriginalVectors
używa oryginalnych, nieskompresowanych wektorów, aby ponownie obliczyć podobieństwo i ponownie uszeregować najlepsze wyniki zwrócone przez początkowe zapytanie wyszukiwania. Nieskompresowane wektory istnieją w indeksie wyszukiwania, nawet jeślistored
jest to fałsz. Ta właściwość jest opcjonalna. Ustawieniem domyślnym jest true.vectorSearch.compressions.defaultOversampling
rozważa szerszy zestaw potencjalnych wyników, aby zrównoważyć zmniejszenie ilości informacji z kwantyzacji. Formuła potencjalnych wyników składa się z zawartościk
w zapytaniu oraz mnożnika nadpróbkowania. Na przykład, jeśli zapytanie określak
wartość 5, a nadpróbkowanie wynosi 20, zapytanie faktycznie żąda 100 dokumentów do użycia w ponownym szeregowaniu, używając w tym celu oryginalnego nieskompresowanego wektora. Zwracane są tylko najwyżejk
ponownie sklasyfikowane wyniki. Ta właściwość jest opcjonalna. Wartość domyślna to 4.vectorSearch.compressions.scalarQuantizationParameters.quantizedDataType
musi być ustawiona naint8
. Jest to obecnie jedyny typ danych pierwotnych obsługiwany. Ta właściwość jest opcjonalna. Wartość domyślna toint8
.vectorSearch.algorithms
ma wartośćhnsw
lubexhaustiveKnn
. Są to przybliżone algorytmy najbliższych sąsiadów (ANN) używane do organizowania zawartości wektorowej podczas indeksowania.vectorSearch.algorithms.m
to liczba linków dwukierunkowych. Wartość domyślna to 4. Zakres wynosi od 4 do 10. Niższe wartości powinny generować mniej zakłóceń w wynikach.vectorSearch.algorithms.efConstruction
to liczba najbliższych sąsiadów używanych podczas indeksowania. Wartość domyślna to 400. Zakres wynosi od 100 do 1000."vectorSearch.algorithms.efSearch
to liczba najbliższych sąsiadów używanych podczas wyszukiwania. Wartość domyślna to 500. Zakres wynosi od 100 do 1000.vectorSearch.algorithms.metric
powinno byćcosine
, jeśli używasz usługi Azure OpenAI, w przeciwnym razie użyj metryki podobieństwa związanej z modelem osadzania, którego używasz. Obsługiwane wartości tocosine
, ,dotProduct
euclidean
ihamming
(używane do indeksowania danych binarnych).vectorSearch.profiles
dodaj warstwę abstrakcji, aby uzyskać bardziej rozbudowane definicje. Profil jest definiowany wvectorSearch
i przywoływany według nazwy w każdym polu wektora. Jest to kombinacja konfiguracji kompresji i algorytmów. Ta właściwość jest przypisywana do pola wektorowego i określa algorytm i kompresję pól.
Dodawanie pola wektorowego do kolekcji pól
Po skonfigurowaniu wektora można dodać pole wektora do kolekcji pól. Pamiętaj, że kolekcja pól musi zawierać pole dla klucza dokumentu, pól wektorów i innych pól niewektorów potrzebnych dla scenariuszy wyszukiwania hybrydowego lub uzupełniania modelu czatu w obciążeniach RAG.
Pola wektorowe charakteryzują się ich typem danych, właściwością opartą dimensions
na modelu osadzania używanym do wyprowadzania wektorów oraz profilem wektorowym utworzonym w poprzednim kroku.
2024-07-01 jest ogólnie dostępny.
Użyj interfejsu API REST tworzenia lub aktualizowania indeksu , aby utworzyć indeks i dodać pole wektora do kolekcji pól.
{ "name": "example-index", "fields": [ { "name": "contentVector", "type": "Collection(Edm.Single)", "searchable": true, "retrievable": false, "stored": false, "dimensions": 1536, "vectorSearchProfile": "vector-profile-1" } ] }
Określ pole wektora z następującymi atrybutami. Można przechowywać jedno wygenerowane osadzanie dla każdego pola. Dla każdego pola wektora:
-
type
musi być typem danych wektorowych.Collection(Edm.Single)
jest najczęstszym modelem osadzania. -
dimensions
to liczba wymiarów generowanych przez model osadzania. W przypadku modelu text-embedding-ada-002, jest ustawiona na 1536. W przypadku serii modeli osadzania tekstu-3 istnieje zakres wartości. Jeśli używasz zintegrowanej wektoryzacji i umiejętności osadzania do generowania wektorów, upewnij się, że ta właściwość jest ustawiona na tę samą wartość wymiarów używaną przez umiejętności osadzania. -
vectorSearchProfile
to nazwa profilu zdefiniowanego gdzie indziej w indeksie. -
searchable
musi być prawdziwe. -
retrievable
może mieć wartość true lub false. True zwraca nieprzetworzone wektory (1536 z nich) jako zwykły tekst i zużywa miejsce magazynowe. Ustaw wartość true, jeśli przekazujesz wynik wektora do aplikacji podrzędnej. -
stored
może mieć wartość true lub false. Określa, czy do pobierania jest przechowywana dodatkowa kopia wektorów. Aby uzyskać więcej informacji, zobacz Zmniejszanie rozmiaru wektora. -
filterable
,facetable
isortable
musi mieć wartość false.
-
Dodaj do kolekcji pola niewektorowe umożliwiające filtrowanie, takie jak
title
z wartościąfilterable
ustawioną na true, jeśli chcesz stosować wstępne filtrowanie lub filtrowanie końcowe w zapytaniu wektorowym.Dodaj inne pola, które definiują istotę i strukturę indeksowania zawartości tekstowej. Co najmniej potrzebny jest klucz dokumentu.
Należy również dodać pola, które są przydatne w zapytaniu lub w odpowiedzi. W poniższym przykładzie przedstawiono pola wektorów dla tytułu i zawartości (
titleVector
icontentVector
), które są równoważne wektorom. Zawiera również pola dla równoważnej zawartości tekstowej (title
icontent
), które są przydatne do sortowania, filtrowania i odczytywania w wynikach wyszukiwania.W poniższym przykładzie przedstawiono kolekcję pól:
PUT https://my-search-service.search.windows.net/indexes/my-index?api-version=2024-07-01&allowIndexDowntime=true Content-Type: application/json api-key: {{admin-api-key}} { "name": "{{index-name}}", "fields": [ { "name": "id", "type": "Edm.String", "key": true, "filterable": true }, { "name": "title", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "retrievable": true }, { "name": "titleVector", "type": "Collection(Edm.Single)", "searchable": true, "retrievable": true, "stored": true, "dimensions": 1536, "vectorSearchProfile": "vector-profile-1" }, { "name": "content", "type": "Edm.String", "searchable": true, "retrievable": true }, { "name": "contentVector", "type": "Collection(Edm.Single)", "searchable": true, "retrievable": false, "stored": false, "dimensions": 1536, "vectorSearchProfile": "vector-profile-1" } ], "vectorSearch": { "algorithms": [ { "name": "hnsw-1", "kind": "hnsw", "hnswParameters": { "m": 4, "efConstruction": 400, "efSearch": 500, "metric": "cosine" } } ], "profiles": [ { "name": "vector-profile-1", "algorithm": "hnsw-1" } ] } }
Ładowanie danych wektorów do indeksowania
Zawartość, którą podajesz do indeksowania, musi być zgodna ze schematem indeksu i zawierać unikatową wartość ciągu klucza dokumentu. Dane przygotowane do wektoryzacji są ładowane do co najmniej jednego pola wektorowego, które może współistnieć z innymi polami zawierającymi zawartość niewektorową.
W przypadku pozyskiwania danych można użyć metodologii wypychania lub ściągania.
Użyj dokumentów — indeks , aby załadować dane wektorowe i niewektorowe do indeksu. Interfejsy API push dla indeksowania są identyczne w wersjach stabilnych i zapoznawczych. Aby załadować dokumenty, użyj dowolnego z następujących interfejsów API:
POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/index?api-version=2024-07-01
{
"value": [
{
"id": "1",
"title": "Azure App Service",
"content": "Azure App Service is a fully managed platform for building, deploying, and scaling web apps. You can host web apps, mobile app backends, and RESTful APIs. It supports a variety of programming languages and frameworks, such as .NET, Java, Node.js, Python, and PHP. The service offers built-in auto-scaling and load balancing capabilities. It also provides integration with other Azure services, such as Azure DevOps, GitHub, and Bitbucket.",
"category": "Web",
"titleVector": [
-0.02250031754374504,
. . .
],
"contentVector": [
-0.024740582332015038,
. . .
],
"@search.action": "upload"
},
{
"id": "2",
"title": "Azure Functions",
"content": "Azure Functions is a serverless compute service that enables you to run code on-demand without having to manage infrastructure. It allows you to build and deploy event-driven applications that automatically scale with your workload. Functions support various languages, including C#, F#, Node.js, Python, and Java. It offers a variety of triggers and bindings to integrate with other Azure services and external services. You only pay for the compute time you consume.",
"category": "Compute",
"titleVector": [
-0.020159931853413582,
. . .
],
"contentVector": [
-0.02780858241021633,
. . .
],
"@search.action": "upload"
}
. . .
]
}
Wykonywanie zapytań względem indeksu pod kątem zawartości wektorowej
W celach weryfikacji można wykonywać zapytania dotyczące indeksu przy użyciu Eksploratora wyszukiwania w witrynie Azure Portal lub wywołania interfejsu API REST. Ponieważ usługa Azure AI Search nie może przekonwertować wektora na tekst czytelny dla człowieka, spróbuj zwrócić pola z tego samego dokumentu, które dostarczają dowody dopasowania. Na przykład, jeśli zapytanie wektorowe jest skierowane do pola titleVector
, możesz wybrać title
jako wyniki wyszukiwania.
Pola muszą być przypisane jako retrievable
, aby były uwzględnione w wynikach.
Przejrzyj indeksy w Zarządzaniu wyszukiwaniem>Indeksy, aby zobaczyć całkowity rozmiar indeksu i wektorowy rozmiar indeksu. Dodatni rozmiar indeksu wektorowego wskazuje, że istnieją wektory.
Użyj Eksploratora wyszukiwania, aby wysłać zapytanie do indeksu. Eksplorator wyszukiwania ma dwa widoki: widok zapytania (domyślny) i widok JSON.
Ustaw opcje zapytania>, aby ukryć wartości wektorów w wynikach wyszukiwania dla bardziej czytelnych wyników.
Użyj widoku JSON dla zapytań wektorowych. Możesz wkleić definicję JSON zapytania wektorowego, które chcesz wykonać. Jeśli indeks ma przypisanie wektoryzatora, możesz również użyć wbudowanej konwersji tekstu na wektor lub konwersji obrazu na wektor. Aby uzyskać więcej informacji na temat wyszukiwania obrazów, zobacz Szybki start: wyszukiwanie obrazów w Eksploratorze wyszukiwania.
Użyj domyślnego widoku zapytania, aby szybko potwierdzić, że indeks zawiera wektory. Widok zapytania jest przeznaczony do wyszukiwania pełnotekstowego. Chociaż nie można go używać do zapytań wektorowych, możesz wysłać puste wyszukiwanie (
search=*
), aby sprawdzić zawartość. Zawartość wszystkich pól, w tym pól wektorowych, jest zwracana jako zwykły tekst.
Aby uzyskać więcej informacji, zobacz Tworzenie zapytania wektorowego.
Aktualizowanie indeksu wektora
Aby zaktualizować indeks wektorowy, zmodyfikuj schemat i załaduj ponownie dokumenty, aby wypełnić nowe pola. Interfejsy API aktualizacji schematu obejmują tworzenie lub aktualizowanie indeksu (REST), CreateOrUpdateIndex w zestawie Azure SDK dla platformy .NET, create_or_update_index w zestawie Azure SDK dla języka Python i podobne metody w innych zestawach SDK platformy Azure.
Aby uzyskać standardowe wskazówki dotyczące aktualizowania indeksu, zobacz Aktualizowanie lub ponowne kompilowanie indeksu.
Kluczowe kwestie obejmują:
Usunięcie i pełna odbudowa indeksu często jest wymagana do aktualizacji i usuwania istniejących pól.
Możesz wprowadzić następujące modyfikacje bez konieczności ponownego kompilowanie:
- Dodaj nowe pola do kolekcji pól.
- Dodaj nowe konfiguracje wektorów przypisane do nowych pól, ale nie istniejące pola, które są już wektoryzowane.
- Zmień
retrievable
(wartości są prawdziwe lub fałszywe) w istniejącym polu. Pola wektorowe muszą być wyszukiwalne i możliwe do pobrania, ale jeśli chcesz wyłączyć dostęp do pola wektorowego w sytuacjach, w których upuszczanie i ponowne kompilowanie nie jest możliwe, możesz ustawić pobieranie na wartość false.
Następne kroki
W następnym kroku zalecamy utworzenie zapytania wektorowego.
Przykłady kodu w repozytorium azure-search-vector-samples przedstawiają kompleksowe przepływy pracy, które obejmują definicję schematu, wektoryzację, indeksowanie i zapytania.
Dostępny jest kod demonstracyjny dla języków Python, C# i JavaScript.