Notatka
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.
Uwaga
Wyszukiwanie AI platformy Azure jest dostępna za pośrednictwem portalu Azure, interfejsów API REST i Azure SDKs. Jest także podstawą Foundry IQ — zarządzanej warstwy wiedzy, która przekształca treści przedsiębiorstwa w bazy wiedzy wielokrotnego użytku z uwzględnieniem uprawnień dla agentów w portalu Microsoft Foundry.
Ważne
Funkcje, możliwości lub właściwości oznaczone (wersja zapoznawcza) nie są objęte umową dotyczącą poziomu usług, nie są zalecane w przypadku obciążeń produkcyjnych i mogą ulec zmianie lub ograniczeniu, zanim staną się one ogólnie dostępne. Warunki Wyszukiwanie AI platformy Azure wersji zapoznawczej mają zastosowanie do wszystkich funkcji w wersji zapoznawczej, niezależnie od tego, czy jest ona autonomiczna, czy częścią ogólnie dostępnej funkcji.
Ważne
Te funkcje i możliwości obsługują połączenia z innymi usługami firmy Microsoft i usługami innych firm. Korzystanie z tych usług podlega odpowiednim warunkom i może spowodować przetwarzanie lub przechowywanie danych poza granicą zgodności Azure, a także dane przepływające do granicy zgodności Azure.
Do Ciebie należy decydowanie o tym, czy dane będą przepływać poza granice zgodności i granice geograficzne organizacji, oraz o wszelkich związanych z tym konsekwencjach, a także zapewnienie odpowiednich uprawnień, ograniczeń i zatwierdzeń.
Odpowiadasz za staranne przeglądanie i testowanie aplikacji, które tworzysz w kontekście konkretnych przypadków użycia, oraz podejmowanie wszelkich odpowiednich decyzji i dostosowań. Obejmuje to implementowanie własnych odpowiedzialnych środków zaradczych dotyczących sztucznej inteligencji, takich jak metaprompty, filtry zawartości lub inne systemy bezpieczeństwa oraz zapewnienie, że aplikacje spełniają odpowiednią jakość, niezawodność, bezpieczeństwo i standardy wiarygodności. Aby uzyskać więcej informacji, zobacz Wyszukiwanie AI platformy Azure Transparency Note.
Indeksator Azure Database for MySQL (wersja zapoznawcza) importuje zawartość z serwera elastycznego Azure Database for MySQL do indeksu Wyszukiwanie AI platformy Azure. Dane wejściowe indeksatora to wiersze z pojedynczej tabeli lub widoku. Dane wyjściowe to indeks wyszukiwania z zawartością, którą można przeszukiwać w poszczególnych polach.
Ten artykuł uzupełnia Tworzenie indeksatora o informacje specyficzne dla indeksowania z usługi Azure Database for MySQL Flexible Server. Używa ona interfejsów API REST, aby zademonstrować trzyczęściowy przepływ pracy wspólny dla wszystkich indeksatorów: tworzenie źródła danych, tworzenie indeksu, tworzenie indeksatora. Wyodrębnianie danych odbywa się, gdy przesyłasz żądanie tworzenia indeksatora.
Po skonfigurowaniu do uwzględnienia wysokiego poziomu wody i miękkiego usuwania, indeksator pobiera wszystkie zmiany, przesyła i usuwa dane z bazy danych MySQL. Odzwierciedla te zmiany w indeksie wyszukiwania. Wyodrębnianie danych odbywa się, gdy przesyłasz żądanie tworzenia indeksatora.
Wymagania wstępne
Wypełnij formularz rejestracji w wersji zapoznawczej indeksatora. Rejestracja jest zatwierdzana automatycznie.
Azure Database for MySQL Flexible Server i dane przykładowe. Dane muszą znajdować się w tabeli lub widoku. Wymagany jest klucz podstawowy. Jeśli używasz widoku, musi mieć kolumnę z wysokim znacznikiem wody.
Uprawnienia do odczytu. full access parametry połączenia zawiera klucz, który udziela dostępu do zawartości, ale jeśli używasz ról Azure, upewnij się, że tożsamość zarządzana usługi search ma Reader uprawnienia w usłudze MySQL.
Klient REST do tworzenia źródła danych, indeksu i indeksatora.
Możesz również użyć Azure SDK dla .NET. Nie można użyć portalu Azure do tworzenia indeksatora, ale możesz zarządzać indeksatorami i źródłami danych po ich utworzeniu.
Ograniczenia wersji zapoznawczej
Obecnie wykrywanie śledzenia zmian i usuwania nie działa, jeśli data lub znacznik czasu jest jednolity dla wszystkich wierszy. To ograniczenie jest znanym problemem, który można rozwiązać w aktualizacji wersji zapoznawczej. Dopóki ten problem nie zostanie rozwiązany, nie dodasz zestawu umiejętności do indeksatora MySQL.
Wersja zapoznawcza nie obsługuje typów obiektów geometrii i obiektów blob.
Jak wspomniano, nie ma obsługi portalu tworzenia indeksatora, ale indeksator MySQL i źródło danych można zarządzać w portalu Azure po ich utworzeniu. Można na przykład edytować definicje i resetować, uruchamiać lub planować indeksator.
Definiowanie źródła danych
Definicja źródła danych określa dane do indeksowania, poświadczeń i zasad identyfikowania zmian w danych. Źródło danych jest definiowane jako niezależny zasób, dzięki czemu może być używane przez wiele indeksatorów.
Ustawienie Utwórz lub Zaktualizuj źródło danych określa definicję. Podczas tworzenia źródła danych pamiętaj, aby użyć interfejsu API REST w wersji zapoznawczej.
{
"name" : "hotel-mysql-ds",
"description" : "[Description of MySQL data source]",
"type" : "mysql",
"credentials" : {
"connectionString" :
"Server=[MySQLServerName].MySQL.database.azure.com; Port=3306; Database=[DatabaseName]; Uid=[UserName]; Pwd=[Password]; SslMode=Preferred;"
},
"container" : {
"name" : "[TableName]"
},
"dataChangeDetectionPolicy" : {
"@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName": "[HighWaterMarkColumn]"
}
}
Kluczowe punkty:
Ustaw
typena"mysql"(wymagane).Ustaw
credentialsna łańcuch połączenia ADO.NET. Parametry połączenia można znaleźć w portalu Azure na stronie Strefa połączenia dla programu MySQL.Ustaw
containernazwę tabeli.Ustaw
dataChangeDetectionPolicy, czy dane są nietrwałe i chcesz, aby indeksator pobierał tylko nowe i zaktualizowane elementy w kolejnych uruchomieniach.Ustaw
dataDeletionDetectionPolicy, jeśli chcesz usunąć dokumenty wyszukiwania z indeksu wyszukiwania po usunięciu elementu źródłowego.
Uwaga
Dla właściwości nazwa kontenera wartość jest ograniczona, aby zezwalać tylko na litery, cyfry, podkreślenia (_), kropki (.), pojedyncze kreski (-) i nawiasy kwadratowe ([])
Tworzenie indeksu
Tworzenie lub aktualizowanie indeksu określa schemat indeksu:
{
"name" : "hotels-mysql-ix",
"fields": [
{ "name": "ID", "type": "Edm.String", "key": true, "searchable": false },
{ "name": "HotelName", "type": "Edm.String", "searchable": true, "filterable": false },
{ "name": "Category", "type": "Edm.String", "searchable": false, "filterable": true, "sortable": true },
{ "name": "City", "type": "Edm.String", "searchable": false, "filterable": true, "sortable": true },
{ "name": "Description", "type": "Edm.String", "searchable": false, "filterable": false, "sortable": false }
]
}
Jeśli klucz podstawowy w tabeli źródłowej jest zgodny z kluczem dokumentu (w tym przypadku "ID"), indeksator importuje klucz podstawowy jako klucz dokumentu.
Mapowanie typów danych
Poniższa tabela mapuje bazę danych MySQL na odpowiedniki Wyszukiwanie AI platformy Azure. Aby uzyskać więcej informacji, zobacz Supported data types (Wyszukiwanie AI platformy Azure).
Uwaga
Wersja zapoznawcza nie obsługuje typów geometrii i typów blob.
| Typy danych MySQL | typy pól Wyszukiwanie AI platformy Azure |
|---|---|
bool, boolean |
Edm.Boolean, Edm.String |
tinyint, , smallint, mediumint, int, , integeryear |
Edm.Int32, Edm.Int64, Edm.String |
bigint |
Edm.Int64, Edm.String |
float, double, real |
Edm.Double, Edm.String |
date, datetime, timestamp |
Edm.DateTimeOffset, Edm.String |
char, varchar, , tinytext, mediumtexttext, longtext, , enumsettime |
Edm.String |
| niepodpisane dane liczbowe, szeregowe, dziesiętne, bitowe, blob, binarne, geometryczne | N/A |
Konfigurowanie i uruchamianie indeksatora MySQL
Po utworzeniu indeksu i źródła danych możesz utworzyć indeksator. Konfiguracja indeksatora określa dane wejściowe, parametry i właściwości kontrolujące zachowania czasu wykonywania.
Utwórz lub zaktualizuj indeksator , podając mu nazwę i odwołując się do źródła danych i indeksu docelowego:
{
"name" : "hotels-mysql-idxr",
"dataSourceName" : "hotels-mysql-ds",
"targetIndexName" : "hotels-mysql-ix",
"disabled": null,
"schedule": null,
"parameters": {
"batchSize": null,
"maxFailedItems": null,
"maxFailedItemsPerBatch": null,
"base64EncodeKeys": null,
"configuration": { }
},
"fieldMappings" : [ ],
"encryptionKey": null
}
Kluczowe punkty:
Określ mapowania pól , jeśli istnieją różnice w nazwie lub typie pola lub jeśli potrzebujesz wielu wersji pola źródłowego w indeksie wyszukiwania.
Indeksator jest uruchamiany automatycznie po jego utworzeniu. Można temu zapobiec, ustawiając
disableddotrue. Aby kontrolować wykonywanie indeksatora, uruchom indeksator na żądanie lub umieść go zgodnie z harmonogramem.
Sprawdzanie stanu indeksatora
Wyślij żądanie Get Indexer Status (Pobierz stan indeksatora ), aby monitorować wykonywanie indeksatora:
GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2026-08-01-preview
Content-Type: application/json
api-key: [admin key]
Odpowiedź zawiera stan i liczbę przetworzonych elementów. Powinien on wyglądać podobnie do poniższego przykładu:
{
"status":"running",
"lastResult": {
"status":"success",
"errorMessage":null,
"startTime":"2024-02-21T00:23:24.957Z",
"endTime":"2024-02-21T00:36:47.752Z",
"errors":[],
"itemsProcessed":1599501,
"itemsFailed":0,
"initialTrackingState":null,
"finalTrackingState":null
},
"executionHistory":
[
{
"status":"success",
"errorMessage":null,
"startTime":"2024-02-21T00:23:24.957Z",
"endTime":"2024-02-21T00:36:47.752Z",
"errors":[],
"itemsProcessed":1599501,
"itemsFailed":0,
"initialTrackingState":null,
"finalTrackingState":null
},
... earlier history items
]
}
Historia wykonywania zawiera do 50 ostatnio wykonanych wykonań, które są sortowane w odwrotnej kolejności chronologicznej, tak aby najnowsze wykonanie było wykonywane jako pierwsze.
Indeksowanie nowych i zmienionych wierszy
Gdy indeksator w pełni wypełni indeks wyszukiwania, może być konieczne uruchomienie kolejnych indeksatorów w celu przyrostowego indeksowania tylko nowych i zmienionych wierszy w bazie danych.
Aby aktywować indeksowanie przyrostowe, skonfiguruj właściwość dataChangeDetectionPolicy w definicji źródła danych. Ta właściwość informuje indeksator, który mechanizm śledzenia zmian jest używany dla Twoich danych.
W przypadku indeksatorów Azure Database for MySQL jedyną obsługiwaną zasadą jest HighWaterMarkChangeDetectionPolicy.
Zasady wykrywania zmian indeksatora polegają na tym, że kolumna wysokiej kreski przechwytuje wersję wiersza lub datę i godzinę ostatniej aktualizacji wiersza. Często jest to kolumna DATE, DATETIME, lub TIMESTAMP z dokładnością wystarczającą do spełnienia wymagań kolumny z wysokim poziomem wody.
W bazie danych MySQL kolumna oznaczająca najwyższy poziom musi spełniać następujące wymagania:
- Wszystkie wstawiane dane muszą określać wartość kolumny.
- Wszystkie aktualizacje elementu również zmieniają wartość kolumny.
- Wartość tej kolumny jest zwiększana przy każdym wstawieniu lub aktualizacji.
- Zapytania z następującymi
WHEREklauzulami iORDER BYmożna wykonywać wydajnie:WHERE [High Water Mark Column] > [Current High Water Mark Value] ORDER BY [High Water Mark Column]
W poniższym przykładzie przedstawiono definicję źródła danych z zasadami wykrywania zmian:
{
"name" : "[Data source name]",
"type" : "mysql",
"credentials" : { "connectionString" : "[connection string]" },
"container" : { "name" : "[table or view name]" },
"dataChangeDetectionPolicy" : {
"@odata.type" : "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName" : "[last_updated column name]"
}
}
Ważne
Jeśli używasz widoku, musisz ustawić politykę wysokiego poziomu w źródle danych indeksatora.
Jeśli tabela źródłowa nie ma indeksu na kolumnie 'high water mark', zapytania używane przez indeksator MySQL mogą przekraczać limit czasu. W szczególności klauzula ORDER BY [High Water Mark Column] wymaga indeksu, aby działać wydajnie, gdy tabela zawiera wiele wierszy.
Indeksowanie usuniętych wierszy
Gdy wiersze są usuwane z tabeli lub widoku, zwykle chcesz usunąć te wiersze z indeksu wyszukiwania. Jeśli jednak wiersze są fizycznie usuwane z tabeli, indeksator nie ma możliwości wnioskowania o obecności rekordów, które już nie istnieją. Rozwiązaniem jest użycie techniki usuwania miękkiego do logicznego usuwania wierszy bez usuwania ich z tabeli. Dodaj kolumnę do tabeli lub widoku i oznacz wiersze jako usunięte przy użyciu tej kolumny.
Biorąc pod uwagę kolumnę, która zapewnia stan usuwania, indeksator można skonfigurować tak, aby usunąć wszystkie dokumenty wyszukiwania, dla których stan usuwania jest ustawiony na true. Właściwość konfiguracji, która obsługuje to zachowanie, to zasady wykrywania usuwania danych określone w definicji źródła danych w następujący sposób:
{
…,
"dataDeletionDetectionPolicy" : {
"@odata.type" : "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
"softDeleteColumnName" : "[a column name]",
"softDeleteMarkerValue" : "[the value that indicates that a row is deleted]"
}
}
Musi softDeleteMarkerValue być ciągiem. Jeśli na przykład masz kolumnę całkowitą, w której usunięte wiersze są oznaczone wartością 1, użyj wartości "1". Jeśli masz kolumnę BIT, w której usunięte wiersze są oznaczone wartością logiczną prawda (true), użyj literału ciągu znaków True lub true (wielkość liter nie ma znaczenia).
Następne kroki
Teraz możesz uruchomić indeksator, monitorować stan lub zaplanować wykonywanie indeksatora. Następujące artykuły dotyczą indeksatorów pobierających zawartość z Azure MySQL: