Indexer in Azure SearchIndexers in Azure Search

Ein Indexer in Azure Search ist ein Crawler, mit dem durchsuchbare Daten und Metadaten aus einer externen Azure-Datenquelle extrahiert werden und ein Index basierend auf Feld-zu-Feld-Zuordnungen zwischen dem Index und Ihrer Datenquelle aufgefüllt wird.An indexer in Azure Search is a crawler that extracts searchable data and metadata from an external Azure data source and populates an index based on field-to-field mappings between the index and your data source. Dieser Ansatz wird auch als „Pullmodell“ bezeichnet, weil der Dienst Daten abruft, ohne dass Sie Code schreiben müssen, der einem Index Daten hinzufügt.This approach is sometimes referred to as a 'pull model' because the service pulls data in without you having to write any code that adds data to an index.

Indexer basieren auf Datenquellentypen oder Plattformen. Es gibt individuelle Indexer für SQL Server in Azure, Cosmos DB, Azure Table Storage und Azure Blob Storage.Indexers are based on data source types or platforms, with individual indexers for SQL Server on Azure, Cosmos DB, Azure Table Storage and Blob Storage. Blob Storage-Indexer verfügen über zusätzliche Eigenschaften, die für Blobinhaltstypen spezifisch sind.Blob storage indexers have additional properties specific to blob content types.

Sie können einen Indexer als alleiniges Mittel für die Datenerfassung verwenden, oder Sie können eine Kombination aus Verfahren nutzen, bei denen ein Indexer zum Laden eines Teils der Felder in Ihren Index verwendet wird.You can use an indexer as the sole means for data ingestion, or use a combination of techniques that include the use of an indexer for loading just some of the fields in your index.

Sie können Indexer bei Bedarf oder nach einem Zeitplan für die regelmäßige Datenaktualisierung ausführen (z. B. alle fünf Minuten).You can run indexers on demand or on a recurring data refresh schedule that runs as often as every five minutes. Für häufigere Aktualisierungen ist ein Pushmodell erforderlich, bei dem Daten in Azure Search und Ihrer externen Datenquelle gleichzeitig aktualisiert werden.More frequent updates require a push model that simultaneously updates data in both Azure Search and your external data source.

Ansätze zum Erstellen und Verwalten von IndexernApproaches for creating and managing indexers

Indexer können mit folgenden Tools erstellt und verwaltet werden:You can create and manage indexers using these approaches:

Ein neuer Indexer wird zunächst als Vorschaufeature angekündigt.Initially, a new indexer is announced as a preview feature. Vorschaufeatures werden in APIs (REST und .NET) eingeführt und in das Portal integriert, wenn sie die allgemeine Verfügbarkeit erreicht haben.Preview features are introduced in APIs (REST and .NET) and then integrated into the portal after graduating to general availability. Planen Sie bei der Bewertung eines neuen Indexers das Schreiben von Code ein.If you're evaluating a new indexer, you should plan on writing code.

BerechtigungenPermissions

Alle Vorgänge im Zusammenhang mit Indexern, einschließlich GET-Anforderungen für den Status oder Definitionen, erfordern einen Admin-API-Schlüssel.All operations related to indexers, including GET requests for status or definitions, require an admin api-key.

Unterstützte DatenquellenSupported data sources

Indexer durchforsten Datenspeicher in Azure.Indexers crawl data stores on Azure.

Hinweis

Azure Table Storage wird für die kognitive Suche nicht unterstützt.Azure Table Storage is not supported for cognitive search.

Grundlegende KonfigurationsschritteBasic configuration steps

Indexer können Features bereitstellen, die für die Datenquelle eindeutig sind.Indexers can offer features that are unique to the data source. In dieser Hinsicht variieren einige Aspekte von Indexern oder der Datenquellenkonfiguration nach Indexertyp.In this respect, some aspects of indexer or data source configuration will vary by indexer type. Für alle Indexer werden aber die gleiche grundlegende Zusammenstellung und die gleichen Anforderungen verwendet.However, all indexers share the same basic composition and requirements. Die Schritte, die für alle Indexer gelten, sind unten beschrieben.Steps that are common to all indexers are covered below.

Schritt 1: Erstellen einer DatenquelleStep 1: Create a data source

Ein Indexer ruft eine Datenquellenverbindung aus einem Datenquelle-Objekt ab.An indexer obtains data source connection from a data source object. Die Datenquellendefinition enthält eine Verbindungszeichenfolge und ggf. Anmeldeinformationen.The data source definition provides a connection string and possibly credentials. Rufen Sie die REST-API Datenquelle erstellen oder die DataSource-Klasse auf, um die Ressource zu erstellen.Call the Create Datasource REST API or DataSource class to create the resource.

Datenquellen werden unabhängig von den Indexern, die darauf zugreifen, konfiguriert und verwaltet. Dies bedeutet, dass eine Datenquelle von mehreren Indexern verwendet werden kann, um mehr als einen Index gleichzeitig zu laden.Data sources are configured and managed independently of the indexers that use them, which means a data source can be used by multiple indexers to load more than one index at a time.

Schritt 2: Erstellen eines IndexStep 2: Create an index

Mit einem Indexer werden einige Aufgaben in Bezug auf die Datenerfassung automatisiert, aber das Erstellen eines Index gehört im Allgemeinen nicht dazu.An indexer will automate some tasks related to data ingestion, but creating an index is generally not one of them. Als Voraussetzung hierfür müssen Sie über einen vordefinierten Index mit Feldern verfügen, die den Feldern in Ihrer externen Datenquelle entsprechen.As a prerequisite, you must have a predefined index with fields that match those in your external data source. Felder müssen nach Name und Datentyp übereinstimmen.Fields need to match by name and data type. Weitere Informationen zum Strukturieren eines Index finden Sie unter Create Index (Azure Search-Dienst REST-API) oder Index-Klasse.For more information about structuring an index, see Create an Index (Azure Search REST API) or Index class. Hilfreiche Informationen zu Feldzuordnungen finden Sie unter Feldzuordnungen in Azure Search-Indexern.For help with field associations, see Field mappings in Azure Search indexers.

Tipp

Indexer können zwar keinen Index für Sie erstellen, diese Aufgabe kann jedoch mit dem Assistenten Daten importieren im Portal ausgeführt werden.Although indexers cannot generate an index for you, the Import data wizard in the portal can help. In den meisten Fällen kann der Assistent ein Indexschema aus vorhandenen Metadaten in der Quelle ableiten und ein vorläufiges Indexschema bereitstellen, das Sie inline bearbeiten können, während der Assistent aktiv ist.In most cases, the wizard can infer an index schema from existing metadata in the source, presenting a preliminary index schema which you can edit in-line while the wizard is active. Sobald der Index für den Dienst erstellt wurde, ist die weitere Bearbeitung im Portal hauptsächlich auf das Hinzufügen neuer Felder beschränkt.Once the index is created on the service, further edits in the portal are mostly limited to adding new fields. Verwenden Sie den Assistenten zum Erstellen, aber nicht zum Überarbeiten eines Index.Consider the wizard for creating, but not revising, an index. Praxisnahe Lerninhalte finden Sie in der exemplarischen Vorgehensweise zum Portal.For hands-on learning, step through the portal walkthrough.

Schritt 3: Erstellen und Planen des IndexersStep 3: Create and schedule the indexer

Die Indexerdefinition ist ein Konstrukt, das alle Elemente im Zusammenhang mit der Datenerfassung kombiniert.The indexer definition is a construct that brings together all of the elements related to data ingestion. Erforderliche Elemente enthalten eine Datenquelle und einen Index.Required elements include a data source and index. Optionale Elemente enthalten einen Zeitplan und Feldzuordnungen.Optional elements include a schedule and field mappings. Feldzuordnungen sind nur optional, wenn sich Quellfelder und Indexfelder eindeutig entsprechen.Field mapping are only optional if source fields and index fields clearly correspond. Ein Indexer kann von einem anderen Dienst aus auf eine Datenquelle verweisen, solange diese Datenquelle aus demselben Abonnement stammt.An indexer can reference a data source from another service, as long as that data source is from the same subscription. Weitere Informationen zum Strukturieren eines Indexers finden Sie unter Create Indexer (Azure Search REST API)(Create Indexer (Azure Search REST-API)).For more information about structuring an indexer, see Create Indexer (Azure Search REST API).

Ausführen von Indexern bei BedarfRun indexers on-demand

Während es üblich ist, eine Indizierung zu planen, kann ein Indexer auch bei Bedarf mit dem Befehl „Ausführen“ aufgerufen werden:While it's common to schedule indexing, an indexer can also be invoked on demand using the Run command:

POST https://[service name].search.windows.net/indexers/[indexer name]/run?api-version=2019-05-06
api-key: [Search service admin key]

Hinweis

Wenn die Ausführungs-API erfolgreich ausgeführt wurde, wurde der Indexeraufruf geplant, die eigentliche Verarbeitung erfolgt jedoch asynchron.When Run API returns successfully, the indexer invocation has been scheduled, but the actual processing happens asynchronously.

Sie können den Indexerstatus im Portal oder über die API zum Abrufen des Indexer-Status überwachen.You can monitor the indexer status in the portal or through Get Indexer Status API.

Abrufen des IndexerstatusGet indexer status

Sie können den Status und Ausführungsverlauf eines Indexers über den Befehl „Indexer-Status abrufen“ abrufen:You can retrieve the status and execution history of an indexer through the Get Indexer Status command:

GET https://[service name].search.windows.net/indexers/[indexer name]/status?api-version=2019-05-06
api-key: [Search service admin key]

Die Antwort enthält den Gesamtstatus des Indexers, den letzten (oder laufenden) Aufruf des Indexers sowie den Verlauf der letzten Indexeraufrufe.The response contains overall indexer status, the last (or in-progress) indexer invocation, and the history of recent indexer invocations.

{
    "status":"running",
    "lastResult": {
        "status":"success",
        "errorMessage":null,
        "startTime":"2018-11-26T03:37:18.853Z",
        "endTime":"2018-11-26T03:37:19.012Z",
        "errors":[],
        "itemsProcessed":11,
        "itemsFailed":0,
        "initialTrackingState":null,
        "finalTrackingState":null
     },
    "executionHistory":[ {
        "status":"success",
         "errorMessage":null,
        "startTime":"2018-11-26T03:37:18.853Z",
        "endTime":"2018-11-26T03:37:19.012Z",
        "errors":[],
        "itemsProcessed":11,
        "itemsFailed":0,
        "initialTrackingState":null,
        "finalTrackingState":null
    }]
}

Der Ausführungsverlauf enthält bis zu 50 der jüngsten abgeschlossenen Ausführungen. Diese sind in umgekehrter chronologischer Reihenfolge sortiert (somit ist die neueste Ausführung als Erstes in der Antwort aufgelistet).Execution history contains up to the 50 most recent completed executions, which are sorted in reverse chronological order (so the latest execution comes first in the response).

Nächste SchritteNext steps

Nachdem Sie sich über die Grundlagen informiert haben, ist der nächste Schritt das Überprüfen der Anforderungen und Aufgaben für jeden Datenquellentyp.Now that you have the basic idea, the next step is to review requirements and tasks specific to each data source type.