Importowanie danych w usłudze Azure AI Search
W usłudze Azure AI Search zapytania wykonują zawartość należącą do użytkownika, która jest ładowana do indeksu wyszukiwania. W tym artykule opisano dwa podstawowe przepływy pracy służące do wypełniania indeksu: wypychanie danych do indeksu programowo lub ściąganie danych przy użyciu indeksatora wyszukiwania.
Obie metody ładują dokumenty z zewnętrznego źródła danych. Chociaż można utworzyć pusty indeks, nie można wykonywać zapytań do momentu dodania zawartości.
Uwaga
Jeśli wzbogacenie sztucznej inteligencji lub zintegrowana wektoryzacja są wymaganiami rozwiązania, należy użyć modelu ściągania (indeksatorów), aby załadować indeks. Zestawy umiejętności są dołączane do indeksatorów i nie są uruchamiane niezależnie.
Wypychanie danych do indeksu
Model wypychania to metoda, która używa interfejsów API do przekazywania dokumentów do istniejącego indeksu wyszukiwania. Dokumenty można przekazywać pojedynczo lub w partiach do 1000 na partię lub 16 MB na partię, w zależności od tego, co nastąpi wcześniej.
Najważniejsze korzyści to:
Brak ograniczeń dotyczących typu źródła danych. Ładunek musi składać się z dokumentów JSON mapowanych na schemat indeksu, ale dane mogą być pozyskiwane z dowolnego miejsca.
Brak ograniczeń dotyczących częstotliwości wykonywania. Możesz wypychać zmiany do indeksu tak często, jak tylko chcesz. W przypadku aplikacji z wymaganiami dotyczącymi małych opóźnień (na przykład gdy indeks musi być zsynchronizowany z wahaniami zapasów produktów), model wypychania jest jedyną opcją.
Łączność i bezpieczne pobieranie dokumentów są w pełni pod kontrolą. Natomiast połączenia indeksatora są uwierzytelniane przy użyciu funkcji zabezpieczeń dostępnych w usłudze Azure AI Search.
Jak wypychać dane do indeksu usługi Azure AI Search
Użyj następujących interfejsów API, aby załadować jeden lub wiele dokumentów do indeksu:
- Indeksowanie dokumentów (interfejs API REST)
- IndexDocumentsAsync (Zestaw Azure SDK dla platformy .NET) lub SearchIndexingBufferedSender
- IndexDocumentsBatch (Azure SDK dla języka Python) lub SearchIndexingBufferedSender
- IndexDocumentsBatch (Azure SDK dla języka Java) lub SearchIndexingBufferedSender
- IndexDocumentsBatch (Azure SDK dla języka JavaScript lub SearchIndexingBufferedSender)
Brak obsługi wypychania danych za pośrednictwem witryny Azure Portal.
Aby zapoznać się z wprowadzeniem do interfejsów API wypychania, zobacz:
- Szybki start: wyszukiwanie pełnotekstowe przy użyciu zestawów SDK platformy Azure
- Samouczek języka C#: optymalizowanie indeksowania za pomocą interfejsu API wypychania
- Szybki start REST: tworzenie indeksu usługi Azure AI Search przy użyciu programu PowerShell
Akcje indeksowania: przekazywanie, scalanie, mergeOrUpload, usuwanie
Można kontrolować typ akcji indeksowania dla poszczególnych dokumentów, określając, czy dokument ma zostać przekazany w całości, scalony z istniejącą zawartością dokumentu, czy usunięty.
Niezależnie od tego, czy używasz interfejsu API REST, czy zestawu Azure SDK, następujące operacje dokumentów są obsługiwane w przypadku importowania danych:
Przekaż plik podobny do "upsert", w którym dokument jest wstawiony, jeśli jest nowy, i zaktualizowany lub zastąpiony, jeśli istnieje. Jeśli w dokumencie brakuje wartości, których indeks wymaga, wartość pola dokumentu jest ustawiona na wartość null.
scalaj aktualizuje dokument, który już istnieje, i kończy się niepowodzeniem dokumentu, którego nie można odnaleźć. Scalanie zastępuje istniejące wartości. Z tego powodu należy sprawdzić pola kolekcji zawierające wiele wartości, takie jak pola typu
Collection(Edm.String)
. Jeśli na przykładtags
pole rozpoczyna się od wartości["budget"]
i wykonujesz scalanie z wartością["economy", "pool"]
, końcową wartościątags
pola jest["economy", "pool"]
. Nie będzie["budget", "economy", "pool"]
to .mergeOrUpload zachowuje się jak scalanie , jeśli dokument istnieje, i przekaż , jeśli dokument jest nowy.
Usunięcie powoduje usunięcie całego dokumentu z indeksu. Jeśli chcesz usunąć pojedyncze pole, użyj scalania , ustawiając pole, którego dotyczy wartość null.
Ściąganie danych do indeksu
Model ściągania używa indeksatorów łączących się z obsługiwanym źródłem danych, automatycznie przekazując dane do indeksu. Indeksatory firmy Microsoft są dostępne dla następujących platform:
- Azure Blob Storage
- Azure Table storage
- Azure Data Lake Storage Gen2
- Azure Files (wersja zapoznawcza)
- Azure Cosmos DB
- Usługa Azure SQL Database, wystąpienie zarządzane SQL i program SQL Server na maszynach wirtualnych platformy Azure
- Pliki i skróty onelake
- SharePoint Online (wersja zapoznawcza)
Możesz używać łączników innych firm, opracowywanych i obsługiwanych przez partnerów firmy Microsoft. Aby uzyskać więcej informacji i linków, zobacz Galeria źródeł danych.
Indeksatory łączą indeks ze źródłem danych (zwykle tabelą, widokiem lub równoważną strukturą) i mapują pola źródłowe na równoważne pola w indeksie. W czasie wykonywania zestaw wierszy jest automatycznie przekształcany w dane w formacie JSON i ładowany do określonego indeksu. Wszystkie indeksatory obsługują harmonogramy, dzięki czemu można określić częstotliwość odświeżania danych. Większość indeksatorów udostępnia śledzenie zmian, jeśli źródło danych obsługuje tę funkcję. Dzięki śledzeniu zmian i usuwania istniejących dokumentów oraz rozpoznawaniu nowych dokumentów indeksatory eliminują konieczność aktywnego zarządzania danymi w indeksie.
Jak ściągać dane do indeksu usługi Azure AI Search
Użyj następujących narzędzi i interfejsów API do indeksowania opartego na indeksatorze:
- Kreator importowania danych lub Kreator importowania i wektoryzacji danych
- Interfejsy API REST: tworzenie indeksatora (REST), tworzenie źródła danych (REST), tworzenie indeksu (REST)
- Zestaw Azure SDK dla platformy .NET: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
- Zestaw Azure SDK dla języka Python: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
- Zestaw Azure SDK dla języka Java: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
- Zestaw Azure SDK dla języka JavaScript: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
Funkcje indeksatora są widoczne w witrynie [Azure Portal], interfejsie API REST i zestawie SDK platformy .NET.
Zaletą korzystania z portalu jest to, że usługa Azure AI Search zwykle może wygenerować domyślny schemat indeksu, odczytując metadane źródłowego zestawu danych.
Weryfikowanie importowania danych za pomocą Eksploratora wyszukiwania
Szybkim sposobem przeprowadzenia wstępnego sprawdzenia przekazywania dokumentu jest użycie Eksploratora wyszukiwania w portalu.
Eksplorator umożliwia wykonywanie zapytań względem indeksu bez konieczności pisania kodu. Środowisko wyszukiwania jest oparte na ustawieniach domyślnych, takich jak prosta składnia i domyślny parametr zapytania searchMode. Wyniki są zwracane w formacie JSON, co umożliwia inspekcję całego dokumentu.
Oto przykładowe zapytanie, które można uruchomić w Eksploratorze wyszukiwania w widoku JSON. "HotelId" jest kluczem dokumentu hotels-sample-index. Filtr zawiera identyfikator dokumentu określonego dokumentu:
{
"search": "*",
"filter": "HotelId eq '50'"
}
Jeśli używasz architektury REST, to zapytanie odnośnika osiąga ten sam cel.