Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Important
Diese Features und Funktionen sind Teil der REST-API 2026-05-01-Preview. Die 2026-05-01-preview wird Ihnen als Teil Ihres Azure-Abonnements zur Verfügung gestellt und unterliegt den für „Previews“ geltenden Bestimmungen in den Microsoft-Produktbestimmungen, dem Nachtrag zum Datenschutz für Microsoft-Produkte und -Dienste („DPA“) und den Ergänzenden Nutzungsbedingungen für Microsoft Azure-Vorschauen.
Die Vorschauversion 2026-05-01 unterstützt Verbindungen mit anderen Microsoft-Diensten und Diensten von Drittanbietern. Die Nutzung dieser Dienste unterliegt den jeweiligen Bestimmungen und kann dazu führen, dass Daten außerhalb der Azure-Compliancegrenze verarbeitet oder gespeichert werden und dass Daten in die Azure-Compliancegrenze fließen.
Es liegt in Ihrer Verantwortung, zu verwalten, ob Ihre Daten außerhalb der Compliance- und geografischen Grenzen Ihrer Organisation und alle damit verbundenen Auswirkungen fließen und dass entsprechende Berechtigungen, Grenzen und Genehmigungen bereitgestellt werden.
Sie sind dafür verantwortlich, Anwendungen, die Sie im Kontext Ihrer spezifischen Anwendungsfälle erstellen, sorgfältig zu überprüfen und zu testen und alle geeigneten Entscheidungen und Anpassungen zu treffen. Dazu gehört die Implementierung ihrer eigenen verantwortungsvollen KI-Entschärfungen, wie Metaprompts, Inhaltsfilter oder andere Sicherheitssysteme, und sicherzustellen, dass Ihre Anwendungen angemessene Qualität, Zuverlässigkeit, Sicherheit und Vertrauenswürdigkeitsstandards erfüllen. Weitere Informationen finden Sie im Azure KI-Suche Transparenzhinweis.
Eine indizierte Azure SQL-Wissensquelle (Vorschau) übernimmt Zeilen aus der Azure SQL-Datenbank oder aus Azure SQL Managed Instance in eine Agent-Abrufpipeline in Azure KI-Suche. Wissensquellen werden unabhängig erstellt, in einer Wissensbasis referenziert und als Erdungsdaten verwendet, wenn die Wissensbasis zur Laufzeit abgefragt wird.
Im Gegensatz zu dateibasierten Wissensquellen wie Azure Blob Storage und OneLake wird jede SQL-Zeile als ein logisches Dokument behandelt. Das Indexschema wird vom Kunden über explizite Spaltenzuordnungen anstelle eines festen Dokumentschemas gesteuert.
Wenn Sie eine indizierte Azure SQL Wissensquelle erstellen, geben Sie eine SQL-Datenquelle, optionale Spaltenzuordnungen und optionale Modelle an, um die folgenden Azure KI-Suche Objekte automatisch zu generieren:
- Eine Datenquelle, die die SQL-Tabelle oder -Ansicht darstellt.
- Ein Index, dessen Felder von Ihren Spaltenzuordnungen abgeleitet werden.
- Ein Skillset, das Einbettungen generiert. Der Dienst erstellt nur dann ein Skillset, wenn Sie angeben
embeddingColumns. - Ein Indexer, der die vorherigen Objekte verwendet, um die Aufnahmepipeline zu steuern.
Der generierte Indexer entspricht dem Azure SQL indexer, dessen Voraussetzungen, Änderungserkennungsrichtlinien und Einschränkungen auch für indizierte Azure SQL Wissensquellen gelten. Weitere Informationen finden Sie in der Azure SQL Indexerdokumentation.
Nutzungssupport
| Azure Portal | Microsoft Foundry Portal | .NET SDK | Python SDK | Java SDK | JavaScript SDK | REST-API |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Voraussetzungen
Einen Azure KI-Suche Dienst in einer beliebigen Region, der agentischen Abruf bereitstellt.
Abschluss der voraussetzungen für Azure SQL indexer, einschließlich:
Eine Azure SQL-Datenbank oder Azure SQL Managed Instance mit einer Tabelle oder Ansicht, die importiert werden soll.
Ein einwertige Primärschlüssel in der Quelltabelle oder -ansicht.
Für Ansichten eine Spalte, die zum Erkennen von Änderungen mit oberen Grenzwerten geeignet ist. Wir empfehlen nachdrücklich eine
rowversionSpalte.
Berechtigungen zum Erstellen von Wissensquellen. Konfigurieren Sie die schlüssellose Authentifizierung mit den Rollen "Mitwirkender des Suchdiensts " und " Indexdatenmitwirkender ", die Ihrem Benutzerkonto zugewiesen sind (empfohlen), oder verwenden Sie einen API-Schlüssel.
Wenn Sie
embeddingColumnsangeben, muss der Suchdienst über eine managed Identity mit Cognitive Services UserBerechtigungen für die Microsoft Foundry-Ressource verfügen, die das Einbettungsmodell hostet.
- Das neueste
Azure.Search.DocumentsVorschaupaket:dotnet add package Azure.Search.Documents --prerelease
- Das neueste
azure-search-documentsVorschaupaket:pip install --pre azure-search-documents
- Die 2026-05-01-Vorschauversion der Suchdienste-REST-APIs.
Einschränkungen und Überlegungen
- Eine Wissensquelle kann Daten aus genau einer Tabelle oder einer Ansicht aufnehmen.
- Die Quelltabelle oder -ansicht muss einen einwertigen Primärschlüssel haben. Zusammengesetzte Schlüssel werden nicht unterstützt.
- Der Primärschlüssel wird automatisch ermittelt und kann nicht überschrieben werden.
-
contentExtractionModeunterstützt nur"minimal". - Bildextraktion und Bildverbalisierung werden nicht unterstützt.
- Die Echtzeitsynchronisierung wird nicht unterstützt. Der generierte Indexer ist zeitplanbasiert.
- Sql-Abruf in Echtzeit wird nicht unterstützt. Die Wissensquelle ist indiziert, nicht remote.
Vorbereiten des generierten Indexers
Eine indizierte Azure SQL Wissensquelle erstellt automatisch einen Indexer zum Steuern der Aufnahme. Überprüfen Sie die folgenden Details, bevor Sie die Wissensquelle erstellen.
Änderungserkennung
Der generierte Indexer verwendet standardmäßige Azure SQL Indexeränderungserkennung:
Tabellen: Der Dienst wendet die integrierte SQL-Änderungsnachverfolgung automatisch an. Aktivieren Sie die SQL-Änderungsnachverfolgung in der Quelltabelle, bevor Sie die Wissensquelle erstellen.
Ansichten: Der Dienst wendet die Erkennung von Änderungen mit oberen Grenzwerten an. Geben Sie die Spalte an, die in
highWaterMarkColumnverwendet werden soll. EinerowversionSpalte wird dringend empfohlen. Um Löschungen in einer Ansicht zu erkennen, fügen Sie der Ansicht eine Soft-Delete-Markierungsspalte hinzu, wie unter Richtlinie zur Löscherkennung mit einer Soft-Delete-Spalte beschrieben.
Authentifizierung
Der generierte Indexer unterstützt zwei Authentifizierungsoptionen:
SQL authentication: Geben Sie im Verbindungszeichenfolge einen Benutzernamen und ein Kennwort ein.
Authentifizierung mit verwalteter Identität: Verwenden Sie eine vom System oder vom Benutzer zugewiesene verwaltete Identität, die über Azure-RBAC-Rollen und Rollen auf Datenbankebene für die SQL-Ressource verfügt.
Informationen zu Verbindungszeichenfolgenformaten, Rollenanforderungen und Einrichtungsschritten finden Sie unter Voraussetzungen für den Azure SQL-Indexer und Herstellen einer Verbindung über eine verwaltete Identität.
Überprüfen auf vorhandene Wissensquellen
Eine Wissensquelle ist ein wiederverwendbares Objekt auf oberster Ebene. Das Wissen über vorhandene Wissensquellen ist hilfreich, um neue Objekte wiederzuverwenden oder zu benennen.
Führen Sie den folgenden Code aus, um Wissensquellen nach Namen und Typ auflisten.
// List knowledge sources by name and type
using Azure.Search.Documents.Indexes;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
var knowledgeSources = indexClient.GetKnowledgeSourcesAsync();
Console.WriteLine("Knowledge Sources:");
await foreach (var ks in knowledgeSources)
{
Console.WriteLine($" Name: {ks.Name}, Type: {ks.GetType().Name}");
}
Reference:SearchIndexClient
# List knowledge sources by name and type
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
for ks in index_client.list_knowledge_sources():
print(f" - {ks.name} ({ks.kind})")
Reference:SearchIndexClient
### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version={{api-version}}&$select=name,kind
api-key: {{api-key}}
Referenz:Wissensquellen - Liste
Sie können auch eine einzelne Wissensquelle anhand des Namens zurückgeben, um die JSON-Definition zu überprüfen.
using Azure.Search.Documents.Indexes;
using System.Text.Json;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
// Specify the knowledge source name to retrieve
string ksNameToGet = "earth-knowledge-source";
// Get its definition
var knowledgeSourceResponse = await indexClient.GetKnowledgeSourceAsync(ksNameToGet);
var ks = knowledgeSourceResponse.Value;
// Serialize to JSON for display
var jsonOptions = new JsonSerializerOptions
{
WriteIndented = true,
DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.Never
};
Console.WriteLine(JsonSerializer.Serialize(ks, ks.GetType(), jsonOptions));
Reference:SearchIndexClient
# Get a knowledge source definition
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
import json
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
ks = index_client.get_knowledge_source("knowledge_source_name")
print(json.dumps(ks.as_dict(), indent = 2))
Reference:SearchIndexClient
### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
api-key: {{api-key}}
Referenz:Wissensquellen - Abrufen
Der folgende JSON-Code ist eine Beispielantwort für eine indizierte Azure SQL Wissensquelle.
{
"name": "indexedsqlks",
"kind": "indexedSql",
"description": "Sample indexed Azure SQL knowledge source.",
"encryptionKey": null,
"indexedSqlParameters": {
"connectionString": "<SQL database connection string>",
"tableOrView": "dbo.tbl_hotels",
"contentColumns": [
{ "name": "hotelName", "sourceField": "HotelName", "searchFieldType": "Edm.String" },
{ "name": "description", "sourceField": "Description", "searchFieldType": "Edm.String" }
],
"embeddingColumns": [
{ "name": "descriptionVector", "sourceField": "Description" }
],
"ingestionParameters": {
"contentExtractionMode": "minimal",
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<Foundry resource endpoint URI>",
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large"
}
},
"createdResources": {
"datasource": "indexedsqlks-datasource",
"indexer": "indexedsqlks-indexer",
"skillset": "indexedsqlks-skillset",
"index": "indexedsqlks-index"
}
}
}
}
Erstellen einer Wissensquelle
Führen Sie den folgenden Code aus, um eine indizierte Azure SQL Wissensquelle zu erstellen.
using Azure;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
var embeddingParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiEmbeddingDeployment,
ModelName = aoaiEmbeddingModel,
ApiKey = aoaiKey
};
var ingestionParams = new KnowledgeSourceIngestionParameters
{
ContentExtractionMode = "minimal",
EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
{
AzureOpenAIParameters = embeddingParams
}
};
var sqlParams = new IndexedSqlKnowledgeSourceParameters(
connectionString: sqlConnectionString,
tableOrView: "dbo.tbl_hotels")
{
ContentColumns =
{
new ContentColumnMapping("hotelName", "HotelName", "Edm.String"),
new ContentColumnMapping("description", "Description", "Edm.String")
},
EmbeddingColumns =
{
new EmbeddingColumnMapping("descriptionVector", "Description")
},
IngestionParameters = ingestionParams
};
var knowledgeSource = new IndexedSqlKnowledgeSource(
name: "indexedsqlks",
indexedSqlParameters: sqlParams)
{
Description = "Indexed Azure SQL knowledge source."
};
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");
Reference:SearchIndexClient, IndexedSqlKnowledgeSource
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
AzureOpenAIVectorizerParameters,
ContentColumnMapping,
EmbeddingColumnMapping,
IndexedSqlKnowledgeSource,
IndexedSqlKnowledgeSourceParameters,
)
from azure.search.documents.knowledgebases.models import (
KnowledgeSourceAzureOpenAIVectorizer,
KnowledgeSourceIngestionParameters,
)
index_client = SearchIndexClient(endpoint="search_url", credential=AzureKeyCredential("api_key"))
embedding_params = AzureOpenAIVectorizerParameters(
resource_url="aoai_endpoint",
deployment_name="aoai_embedding_deployment",
model_name="aoai_embedding_model",
api_key="aoai_key",
)
ingestion_params = KnowledgeSourceIngestionParameters(
content_extraction_mode="minimal",
embedding_model=KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=embedding_params
),
)
knowledge_source = IndexedSqlKnowledgeSource(
name="indexedsqlks",
description="Indexed Azure SQL knowledge source.",
indexed_sql_parameters=IndexedSqlKnowledgeSourceParameters(
connection_string="Server=tcp:{server}.database.windows.net,1433;Database={db};...;",
table_or_view="dbo.tbl_hotels",
content_columns=[
ContentColumnMapping(
name="hotelName",
source_field="HotelName",
search_field_type="Edm.String",
),
ContentColumnMapping(
name="description",
source_field="Description",
search_field_type="Edm.String",
),
],
embedding_columns=[
EmbeddingColumnMapping(
name="descriptionVector",
source_field="Description",
)
],
ingestion_parameters=ingestion_params,
),
)
index_client.create_or_update_knowledge_source(knowledge_source=knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
Reference:SearchIndexClient
### Create an indexed Azure SQL knowledge source
PUT {{search-url}}/knowledgesources/indexedsqlks?api-version=2026-05-01-preview
api-key: {{api-key}}
Content-Type: application/json
{
"name": "indexedsqlks",
"kind": "indexedSql",
"description": "Indexed Azure SQL knowledge source.",
"indexedSqlParameters": {
"connectionString": "Server=tcp:{server}.database.windows.net,1433;Database={db};...;",
"tableOrView": "dbo.tbl_hotels",
"contentColumns": [
{ "name": "hotelName", "sourceField": "HotelName", "searchFieldType": "Edm.String" },
{ "name": "description", "sourceField": "Description", "searchFieldType": "Edm.String" }
],
"embeddingColumns": [
{ "name": "descriptionVector", "sourceField": "Description" }
],
"ingestionParameters": {
"contentExtractionMode": "minimal",
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-embedding-deployment}}",
"modelName": "{{aoai-embedding-model}}",
"apiKey": "{{aoai-key}}"
}
}
}
}
}
Quellspezifische Eigenschaften
Die folgenden Eigenschaften gelten für indizierte Azure SQL Wissensquellen.
| Eigentum | Description | Typ | Bearbeitbar | Erforderlich |
|---|---|---|---|---|
name |
Der Name der Wissensquelle. Der Name muss innerhalb der Wissensquellensammlung eindeutig sein und den naming-Richtlinien für Objekte in Azure KI-Suche folgen. | String | Ja | Ja |
kind |
Die Art der Wissensquelle, die in diesem Fall indexedSql ist. |
String | No | Ja |
description |
Eine Beschreibung der Wissensquelle. | String | Ja | No |
encryptionKey |
Ein vom Kunden verwalteter Schlüssel zum Verschlüsseln vertraulicher Informationen sowohl in der Wissensquelle als auch in den generierten Objekten. | Object | Ja | No |
indexedSqlParameters |
Spezifische Parameter für indizierte Azure SQL Wissensquellen, die im folgenden Abschnitt beschrieben werden. | Object | Ja |
indexedSqlParameters Eigenschaften
Die folgenden Eigenschaften sind spezifisch für das indexedSqlParameters-Objekt einer indizierten Azure SQL Wissensquelle.
| Eigentum | Description | Typ | Bearbeitbar | Erforderlich |
|---|---|---|---|---|
connectionString |
Eine Verbindungszeichenfolge für die SQL-Authentifizierung oder verwaltete Identität für Azure SQL-Datenbank oder Azure SQL Managed Instance. Informationen zu den unterstützten Anmeldeinformationsformaten finden Sie unter den Voraussetzungen für den Azure SQL-Indexer. | String | No | Ja |
tableOrView |
Der vollqualifizierte Name der SQL-Tabelle oder -Ansicht, die erfasst werden soll, angegeben im Format schema.objectName. Eine Wissensquelle bezieht Daten aus genau einer Tabelle oder einer Ansicht. |
String | No | Ja |
highWaterMarkColumn |
Erforderlich, wenn tableOrView sich auf eine Ansicht bezieht. Der Name der Spalte, die zum Erkennen von Änderungen mit oberen Grenzwerten verwendet wird. Wir empfehlen nachdrücklich eine rowversion Spalte. Weitere Informationen finden Sie unter Richtlinie zum Erkennen von Änderungen mit oberem Grenzwert. |
String | No | Conditional |
contentColumns |
Ein Array von Spaltenzuordnungen , das definiert, welche SQL-Spalten als durchsuchbarer Textinhalt im generierten Index behandelt werden. Jede Zuordnung muss Edm.String als searchFieldType verwenden. |
Array | No | No |
embeddingColumns |
Ein Array von Einbettungszuordnungen , die definieren, welche SQL-Spalten zum Generieren von Vektorfeldern verwendet werden. | Array | No | No |
ingestionParameters |
Eine Teilmenge der Standard-Wissensquelleneinnahmeparameter. | Object | No |
Spaltenzuordnung
contentColumns verwendet die folgende Form der Spaltenzuordnung.
| Eigentum | Description | Typ | Bearbeitbar | Erforderlich |
|---|---|---|---|---|
name |
Der Name des Felds, wie es im generierten Azure KI-Suche Index angezeigt wird. | String | No | Ja |
sourceField |
Die SQL-Spalte, deren Wert das Zielfeld auffüllt. | String | No | Ja |
searchFieldType |
Der Azure KI-Suche Feldtyp für das generierte Feld. Für contentColumns, muss dies sein Edm.String. |
String | No | Ja |
Einbettungszuordnung
embeddingColumns verwendet die folgende Embedding-Zuordnungsform.
| Eigentum | Description | Typ | Bearbeitbar | Erforderlich |
|---|---|---|---|---|
name |
Der Name des Zielvektorfelds, das der Dienst im generierten Index erstellt. Es könnte z. B. sein descriptionVector. |
String | No | Ja |
sourceField |
Die SQL-Spalte, deren Textinhalt an das Einbettungsmodell gesendet wird. | String | No | Ja |
ingestionParameters Eigenschaften
Für indizierte Azure SQL Wissensquellen ist das vorhandene ingestionParameters Schema unverändert, aber nur die folgenden Eigenschaften gelten.
| Eigentum | Description | Typ | Bearbeitbar | Erforderlich |
|---|---|---|---|---|
contentExtractionMode |
Muss "minimal"lauten. Andere Modi werden nicht unterstützt, da Azure SQL Aufnahme zeilenbasiert ist und keine Inhalte aus binären Dokumenten extrahiert. |
String | No | No |
embeddingModel |
Ein Azure OpenAI-Einbettungsmodell zum Vektorisieren der spalten, die in embeddingColumns aufgeführt sind. Nur erforderlich, wenn embeddingColumns angegeben wird. |
Object | Nur apiKey und deploymentId können bearbeitet werden |
Conditional |
identity |
Eine optionale vom Benutzer zugewiesene verwaltete Identität, die für die Authentifizierung bei Azure SQL und Azure OpenAI verwendet wird. | Object | Ja | No |
ingestionSchedule |
Ein optionaler Zeitplan, der steuert, wie oft der generierte Indexer ausgeführt wird. | Object | Ja | No |
Bildextraktion und Bildverbalisierung werden für indizierte Azure SQL Wissensquellen nicht unterstützt, sodass chatCompletionModel, assetStore, aiServices und bildbezogene Einstellungen keine Auswirkung haben.
Regeln für Standardwerte und Validierung
Die folgenden Standardwerte gelten, wenn Sie eine indizierte Azure SQL Wissensquelle erstellen.
Wenn Sie
contentColumnsweglassen, ordnet der Dienst SQL-Spalten, die sicher als Text dargestellt werden können, im generierten Index automatischEdm.String-Feldern zu, wobei eine 1:1-Zuordnung verwendet wird, bei dernamegleichsourceFieldist.Wenn Sie weglassen
embeddingColumns, erstellt der Dienst keine Vektorfelder und konfiguriert keine Einbettungskompetenz.embeddingColumnsist unabhängig voncontentColumns. Um Vektoren zu formatieren, die dem abrufbaren Text entsprechen, fügen Sie dieselbe SQL-Spalte in beide Arrays ein.Der Primärschlüssel der Quelltabelle oder -ansicht wird automatisch ermittelt. Explizite Überschreibungen werden nicht unterstützt, und die Quelle muss über einen einwertigen Primärschlüssel verfügen.
Überprüfen des Ingestion-Status
Führen Sie den folgenden Code aus, um den Fortschritt und die Integrität der Erfassung zu überwachen, einschließlich der Wissensquelle und detaillierter Indizierungsfehler für Wissensquellen, die eine Indexerpipeline generieren und einen Suchindex auffüllen.
using Azure.Search.Documents.Indexes;
using System.Text.Json;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
// Get knowledge source ingestion status
var statusResponse = await indexClient.GetKnowledgeSourceStatusAsync(knowledgeSourceName);
var status = statusResponse.Value;
// Serialize to JSON for display
var json = JsonSerializer.Serialize(status, new JsonSerializerOptions { WriteIndented = true });
Console.WriteLine(json);
Reference:SearchIndexClient
# Check knowledge source ingestion status
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
import json
index_client = SearchIndexClient(endpoint="search_url", credential=AzureKeyCredential("api_key"))
status = index_client.get_knowledge_source_status("knowledge_source_name")
print(json.dumps(status.as_dict(), indent=2))
Reference:SearchIndexClient
### Check knowledge source ingestion status
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}/status?api-version={{api-version}}
api-key: {{api-key}}
Content-Type: application/json
Referenz:Wissensquellen – Status abrufen
Eine Antwort für eine Anforderung, die Aufnahmeparameter enthält und aktiv Inhalte erfasst, kann wie im folgenden Beispiel aussehen.
{
"kind": "azureBlob",
"synchronizationStatus": "active",
"synchronizationInterval": "1d",
"currentSynchronizationState": {
"startTime": "2026-04-10T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
"errors": [
{
"key": "Item id 1",
"docURL": "https://contoso.blob.core.windows.net/contracts/2024/Q4/doc-00023.csv",
"statusCode": 400,
"componentName": "DocumentExtraction.AzureBlob.MyDataSource",
"errorMessage": "Could not read the value of column 'foo' at index '0'.",
"details": "The file could not be parsed.",
"documentationLink": "https://go.microsoft.com/fwlink/?linkid=2049388"
}
]
},
"lastSynchronizationState": {
"status": "partialSuccess",
"startTime": "2026-04-09T19:30:00Z",
"endTime": "2026-04-09T19:40:01Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
"errors": null
},
"statistics": {
"totalSynchronizations": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization": 500
}
}
Note
Die Eigenschaft kind und das Array currentSynchronizationState.errors[] mit Fehlerdetails auf Dokumentebene sind ab der API-Version 2026-04-01 verfügbar. Für frühere API-Versionen werden diese Felder nicht zurückgegeben. Das lastSynchronizationState.status Feld ist auch neu in 2026-04-01.
Überprüfen der generierten Objekte
Wenn Sie diese Wissensquelle erstellen, generiert Azure KI-Suche automatisch eine Datenquelle, einen Fähigkeitensatz, einen Indexer und einen Index. Die Erstellungsantwort listet jedes Objekt unter createdResources.
Diese Objekte werden gemäß einer festen Vorlage generiert, und ihre Namen basieren auf dem Namen der Wissensquelle. Sie können die Objektnamen nicht ändern. Vermeiden Sie das direkte Bearbeiten dieser Objekte, da Änderungen Fehler oder Inkompatibilitäten verursachen können, die die Indexerpipeline unterbrechen.
Sie können das Azure Portal verwenden, um die Objekterstellung zu überprüfen. Der Workflow lautet:
Überprüfen Sie den Indexer auf Erfolgs- oder Fehlermeldungen. Hier werden Verbindungs- oder Kontingentfehler angezeigt.
Überprüfen Sie die Datenquelle, um die Verbindung mit Ihrem Datenspeicher zu überprüfen. Die Verbindung verwendet entweder eine Verbindungszeichenfolge oder eine verwaltete Identität, je nachdem, wie Sie die Wissensquelle konfiguriert haben.
Überprüfen Sie das Skillset, um zu sehen, wie Ihre Inhalte in Blöcke unterteilt und optional vektorisiert werden.
Überprüfen Sie den Index, um zu sehen, wie Ihre Inhalte für den Abruf indiziert und verfügbar gemacht werden, einschließlich der durchsuchbaren und filterbaren Felder und welche Felder Vektoren für die Ähnlichkeitssuche speichern. Verwenden Sie den Such-Explorer, um Abfragen für den generierten Index auszuführen.
Zuweisen zu einer Wissensbasis
Wenn Sie mit der Wissensquelle zufrieden sind, fügen Sie sie einer Wissensbasis hinzu.
Abfragen einer Wissensbasis
Rufen Sie nach der Konfiguration der Knowledge Base die Abrufaktion oder den MCP-Endpunkt auf, um die Wissensquelle abzufragen.
Löschen einer Wissensquelle
Bevor Sie eine Wissensquelle löschen können, müssen Sie alle Knowledge Basen löschen, die darauf verweisen, oder die Knowledge Base-Definition aktualisieren, um den Verweis zu entfernen. Für Wissensquellen, die eine Index- und Indexerpipeline generieren, werden auch alle generierten Objekte gelöscht. Wenn Sie jedoch einen vorhandenen Index zum Erstellen einer Wissensquelle verwendet haben, wird Ihr Index nicht gelöscht.
Wenn Sie versuchen, eine verwendete Wissensquelle zu löschen, schlägt die Aktion fehl und gibt eine Liste der betroffenen Wissensdatenbanken zurück.
So löschen Sie eine Wissensquelle:
Erhalten Sie eine Liste aller Wissensdatenbanken für Ihren Suchdienst.
using Azure.Search.Documents.Indexes; var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential); var knowledgeBases = indexClient.GetKnowledgeBasesAsync(); Console.WriteLine("Knowledge Bases:"); await foreach (var kb in knowledgeBases) { Console.WriteLine($" - {kb.Name}"); }Reference:SearchIndexClient
Eine Beispielantwort könnte wie folgt aussehen:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Rufen Sie eine individuelle Wissensbasisdefinition ab, um nach Wissensquellenverweise zu suchen.
using Azure.Search.Documents.Indexes; using System.Text.Json; var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential); // Specify the knowledge base name to retrieve string kbNameToGet = "earth-knowledge-base"; // Get a specific knowledge base definition var knowledgeBaseResponse = await indexClient.GetKnowledgeBaseAsync(kbNameToGet); var kb = knowledgeBaseResponse.Value; // Serialize to JSON for display string json = JsonSerializer.Serialize(kb, new JsonSerializerOptions { WriteIndented = true }); Console.WriteLine(json);Reference:SearchIndexClient
Eine Beispielantwort könnte wie folgt aussehen:
{ "Name": "earth-knowledge-base", "KnowledgeSources": [ { "Name": "earth-knowledge-source" } ], "Models": [ {} ], "RetrievalReasoningEffort": {}, "OutputMode": {}, "ETag": "\u00220x8DE278629D782B3\u0022", "EncryptionKey": null, "Description": null, "RetrievalInstructions": null, "AnswerInstructions": null }Löschen Sie entweder die Wissensdatenbank, oder aktualisieren Sie, wenn Sie über mehrere Wissensquellen verfügen, die Wissensbasis, um die Quelle zu entfernen. In diesem Beispiel wird das Löschen gezeigt.
using Azure.Search.Documents.Indexes; var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential); await indexClient.DeleteKnowledgeBaseAsync(knowledgeBaseName); System.Console.WriteLine($"Knowledge base '{knowledgeBaseName}' deleted successfully.");Reference:SearchIndexClient
Löschen Sie die Wissensquelle.
await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName); System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");Reference:SearchIndexClient
Erhalten Sie eine Liste aller Wissensdatenbanken für Ihren Suchdienst.
# Get knowledge bases from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) print("Knowledge Bases:") for kb in index_client.list_knowledge_bases(): print(f" - {kb.name}")Reference:SearchIndexClient
Eine Beispielantwort könnte wie folgt aussehen:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Rufen Sie eine individuelle Wissensbasisdefinition ab, um nach Wissensquellenverweise zu suchen.
# Get a knowledge base definition from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) kb = index_client.get_knowledge_base("knowledge_base_name") print(kb)Reference:SearchIndexClient
Eine Beispielantwort könnte wie folgt aussehen:
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks", } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }Löschen Sie entweder die Wissensdatenbank, oder aktualisieren Sie, wenn Sie über mehrere Wissensquellen verfügen, die Wissensbasis, um die Quelle zu entfernen. In diesem Beispiel wird das Löschen gezeigt.
# Delete a knowledge base from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) index_client.delete_knowledge_base("knowledge_base_name") print(f"Knowledge base deleted successfully.")Reference:SearchIndexClient
Löschen Sie die Wissensquelle.
# Delete a knowledge source from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) index_client.delete_knowledge_source("knowledge_source_name") print(f"Knowledge source deleted successfully.")Reference:SearchIndexClient
Erhalten Sie eine Liste aller Wissensdatenbanken für Ihren Suchdienst.
### Get knowledge bases GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name api-key: {{api-key}}Referenz:Wissensdatenbanken - Liste
Eine Beispielantwort könnte wie folgt aussehen:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Rufen Sie eine individuelle Wissensbasisdefinition ab, um nach Wissensquellenverweise zu suchen.
### Get a knowledge base definition GET {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} api-key: {{api-key}}Referenz:Wissensdatenbanken - Abrufen
Eine Beispielantwort könnte wie folgt aussehen:
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks", } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }Löschen Sie entweder die Wissensdatenbank, oder aktualisieren Sie, wenn Sie über mehrere Wissensquellen verfügen, die Wissensbasis, um die Quelle zu entfernen. In diesem Beispiel wird das Löschen gezeigt.
### Delete a knowledge base DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} api-key: {{api-key}}Referenz:Knowledge Basen - Löschen
Löschen Sie die Wissensquelle.
### Delete a knowledge source DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}} api-key: {{api-key}}Referenz:Wissensquellen - Löschen