Erste Schritte mit Wissensspeichern in Azure SearchHow to get started with knowledge store in Azure Search

Hinweis

Wissensspeicher befinden sich in der Vorschau und sind nicht für die Produktion ausgelegt.Knowledge store is in preview and not intended for production use. Dieses Feature wird durch die REST-API-Version 2019-05-06-Preview bereitgestellt.The REST API version 2019-05-06-Preview provides this feature. Das .NET SDK wird derzeit nicht unterstützt.There is no .NET SDK support at this time.

In Wissensspeichern werden KI-Anreicherungen gespeichert, die bei der Indizierung in Ihrem Azure Storage-Konto für das Knowledge Mining in nachgeschalteten anderen Apps erstellt werden.Knowledge store saves AI enrichments created during indexing to your Azure storage account for downstream knowledge mining in other apps. Sie können auch gespeicherte Anreicherungen verwenden, um eine Azure Search-Indizierungspipeline zu verstehen und zu optimieren.You can also use saved enrichments to understand and refine an Azure Search indexing pipeline.

Ein Wissensspeicher wird durch eine Qualifikationsgruppe definiert.A knowledge store is defined by a skillset. In Azure Search-Szenarien mit einer regulären Volltextsuche soll die Qualifikationsgruppe KI-Anreicherungen bereitstellen, um die Durchsuchbarkeit des Inhalts zu verbessern.For regular Azure Search full-text search scenarios, the purpose of a skillset is providing AI enrichments to make content more searchable. Für Knowledge Mining-Szenarien besteht die Rolle einer Qualifikationsgruppe darin, mehrere Datenstrukturen zur Analyse oder Modellierung in anderen Apps und Prozessen zu erstellen, aufzufüllen und zu speichern.For knowledge mining scenarios, the role of a skillset is creating, populating, and storing multiple data structures for analysis or modeling in other apps and processes.

Sie beginnen in dieser Übung mit Beispieldaten, -diensten und -tools, um den grundlegenden Workflow zum Erstellen und Verwenden Ihres ersten Wissensspeichers und dabei insbesondere die Bedeutung von Qualifikationsgruppendefinitionen kennenzulernen.In this exercise, start with sample data, services, and tools to learn the basic workflow for creating and using your first knowledge store, with emphasis on skillset definition.

VoraussetzungenPrerequisites

In diesem Schnellstart werden die folgenden Dienste, Tools und Daten verwendet.The following services, tools, and data are used in this quickstart.

  • Erstellen Sie einen Azure Search-Dienst, oder suchen Sie in Ihrem aktuellen Abonnement nach einem vorhandenen Dienst.Create an Azure Search service or find an existing service under your current subscription. In diesem Tutorial können Sie einen kostenlosen Dienst verwenden.You can use a free service for this tutorial.

  • Erstellen Sie ein Azure-Speicherkonto zum Speichern der Beispieldaten.Create an Azure storage account for storing the sample data. Ihr Wissensspeicher wird in Azure Storage gespeichert.Your knowledge store will exist in Azure storage.

  • Erstellen Sie eine Cognitive Services-Ressource im S0-Tarif mit nutzungsbasierter Bezahlung, um umfassenden Zugriff auf das gesamte Spektrum der Qualifikationen für KI-Anreicherungen zu erhalten.Create a Cognitive Services resource at the S0 pay-as-you-go tier for broad-spectrum access to the full range of skills used in AI enrichments. Diese Ressource und Ihr Azure Search-Dienst müssen sich in der gleichen Region befinden.This resource and your Azure Search service are required to be in the same region.

  • Postman-Desktop-App zum Senden von Anforderungen an Azure Search.Postman desktop app for sending requests to Azure Search.

  • Postman-Sammlung mit vorbereiteten Anforderungen zum Erstellen von Datenquelle, Index, Qualifikationsgruppe und Indexer.Postman collection with prepared requests for creating a data source, index, skillset, and indexer. Mehrere Objektdefinitionen sind zu lang, um in diesem Artikel behandelt zu werden.Several object definitions are too long to include in this article. Sie benötigen diese Sammlung, damit Sie die Index- und Qualifikationsgruppendefinitionen vollständig sehen können.You must get this collection to see the index and skillset definitions in their entirety.

  • Caselaw-Beispieldaten aus dem Caselaw Access-Projekt mit Downloadseite für den Massendownload.Caselaw sample data originating from the Caselaw Access Project Public Bulk Data download page. In dieser Übung werden die ersten 10 Dokumente aus dem ersten Download (Arkansas) verwendet.Specifically, the exercise uses the first 10 documents of the first download (Arkansas). Wir haben ein Beispiel mit 10 Dokumenten für diese Übung auf GitHub hochgeladen.We uploaded a 10-document sample to GitHub for this exercise.

Abrufen eines Schlüssels und einer URLGet a key and URL

Für REST-Aufrufe sind die Dienst-URL und ein Zugriffsschlüssel für jede Anforderung erforderlich.REST calls require the service URL and an access key on every request. Hierfür wird jeweils ein Suchdienst erstellt. Wenn Sie Azure Search also Ihrem Abonnement hinzugefügt haben, können Sie diese Schritte ausführen, um die erforderlichen Informationen zu erhalten:A search service is created with both, so if you added Azure Search to your subscription, follow these steps to get the necessary information:

  1. Melden Sie sich beim Azure-Portal an, und rufen Sie auf der Seite Übersicht Ihres Suchdiensts die URL ab.Sign in to the Azure portal, and in your search service Overview page, get the URL. Ein Beispiel für einen Endpunkt ist https://mydemo.search.windows.net.An example endpoint might look like https://mydemo.search.windows.net.

  2. Rufen Sie unter Einstellungen > Schlüssel einen Administratorschlüssel ab, um Vollzugriff auf den Dienst zu erhalten.In Settings > Keys, get an admin key for full rights on the service. Es gibt zwei austauschbare Administratorschlüssel – diese wurden zum Zweck der Geschäftskontinuität bereitgestellt, falls Sie einen Rollover für einen Schlüssel durchführen müssen.There are two interchangeable admin keys, provided for business continuity in case you need to roll one over. Für Anforderungen zum Hinzufügen, Ändern und Löschen von Objekten können Sie den primären oder den sekundären Schlüssel verwenden.You can use either the primary or secondary key on requests for adding, modifying, and deleting objects.

    Abrufen eines HTTP-Endpunkts und ZugriffsschlüsselsGet an HTTP endpoint and access key

Für alle an Ihren Dienst gesendeten Anforderungen ist ein API-Schlüssel erforderlich.All requests require an api-key on every request sent to your service.

Vorbereiten der BeispieldatenPrepare sample data

  1. Melden Sie sich beim Azure-Portal an, navigieren Sie zu Ihrem Azure-Speicherkonto, klicken Sie auf BLOBs und dann auf + Container.Sign in to the Azure portal, navigate to your Azure storage account, click Blobs, and then click + Container.

  2. Erstellen Sie einen Blobcontainer für die Beispieldaten.Create a Blob container to contain sample data. Verwenden Sie den Containernamen „caselaw-test“.Use the container name "caselaw-test". Sie können die öffentliche Zugriffsebene auf beliebige gültige Werte festlegen.You can set the Public Access Level to any of its valid values.

  3. Nachdem der Container erstellt wurde, öffnen Sie ihn, und wählen Sie auf der Befehlsleiste die Option Hochladen aus.After the container is created, open it and select Upload on the command bar.

    „Hochladen“ auf der BefehlsleisteUpload on command bar

  4. Navigieren Sie zu dem Ordner mit der Beispieldatei caselaw-sample.json.Navigate to the folder containing the caselaw-sample.json sample file. Wählen Sie die Datei aus, und klicken Sie dann auf Hochladen.Select the file and then click Upload.

Einrichten von PostmanSet up Postman

Starten Sie Postman, und importieren Sie die Sammlung „Caselaw Postman“.Start Postman and import the Caselaw Postman collection. Richten Sie alternativ eine Reihe von HTTP-Anforderungen ein.Alternatively, set up a series of HTTP requests. Wenn Sie mit diesem Tool nicht vertraut sind, lesen Sie Untersuchen von Azure Search-REST-APIs mit Postman oder Fiddler.If you are unfamiliar with this tool, see Explore Azure Search REST APIs using Postman.

  • Für alle Aufrufe in dieser exemplarischen Vorgehensweise wird die Anforderungsmethode PUT oder POST verwendet.Request method for every call in this walkthrough is PUT or POST.

  • Anforderungsheader (2) enthalten Folgendes: „Content-type“ ist auf „application/json“ und „api-key“ ist auf Ihren Administratorschlüssel (ein Platzhalter für Ihren Primärschlüssel für die Suche) festgelegt.Request headers (2) include the following: "Content-type" set to "application/json", "api-key" set to your "admin key" (the admin key is a placeholder for your search primary key) respectively.

  • Im Anforderungstext ordnen Sie den eigentlichen Inhalt Ihres Aufrufs an.Request body is where you place the actual contents of your call.

    Teilweise strukturierte Suche

Wir nutzen Postman zum Senden von vier API-Aufrufen an Ihren Suchdienst, um eine Datenquelle, einen Index, eine Qualifikationsgruppe und einen Indexer zu erstellen – in dieser Reihenfolge.We are using Postman to make four API calls to your search service, creating a data source, an index, a skillset, and an indexer - in that order. Die Datenquelle enthält einen Zeiger auf Ihr Azure-Speicherkonto und Ihre JSON-Daten.The data source includes a pointer to your Azure storage account and JSON data. Ihr Suchdienst stellt die Verbindung beim Importieren der Daten her.Your search service makes the connection when importing the data.

Der Schwerpunkt dieser exemplarischen Vorgehensweise liegt auf dem Erstellen einer Qualifikationsgruppe: Sie gibt die Schritte für die Anreicherung an und wie Daten in einem Wissensspeicher aufbewahrt werden.Create a skillset is the focus of this walkthrough: it specifies the enrichment steps and how data is persisted in a knowledge store.

Im URL-Endpunkt muss eine API-Version angegeben werden, und für jeden Aufruf sollte 201 Created zurückgegeben werden.URL endpoint must specify an api-version and each call should return a 201 Created. Die Vorschauversion der API für das Erstellen einer Qualifikationsgruppe mit Unterstützung von Wissensspeichern ist 2019-05-06-Preview (Berücksichtigung von Groß-/Kleinbuchstaben).The preview api-version for creating a skillset with knowledge store support is 2019-05-06-Preview (case-sensitive).

Führen Sie die folgenden API-Aufrufe über Ihren REST-Client aus.Execute the following API calls from your REST client.

Erstellen einer DatenquelleCreate a data source

Die API zum Erstellen einer Datenquelle erstellt ein Azure Search-Objekt, das angibt, welche Daten indiziert werden sollen.The Create Data Source API creates an Azure Search object that specifies what data to index.

Der Endpunkt dieses Aufrufs lautet https://[service name].search.windows.net/datasources?api-version=2019-05-06-Preview.The endpoint of this call is https://[service name].search.windows.net/datasources?api-version=2019-05-06-Preview

  1. Ersetzen Sie [service name] durch den Namen Ihres Suchdiensts.Replace [service name] with the name of your search service.

  2. Für diesen Aufruf muss der Anforderungstext die Verbindungszeichenfolge Ihres Speicherkontos und den Namen des Blobcontainers enthalten.For this call, the request body must include your storage account connection string and blob container name. Sie finden die Verbindungszeichenfolge im Azure-Portal unter den Zugriffsschlüsseln Ihres Speicherkontos.The connection can be found in the Azure portal inside your storage account's Access Keys.

    Ersetzen Sie die Verbindungszeichenfolge und den Namen des Blobcontainers im Anforderungstext unbedingt, bevor Sie den Aufruf ausführen.Make sure to replace the connection string and blob container name in the body of the request before executing the call.

    {
        "name": "caselaw-ds",
        "description": null,
        "type": "azureblob",
        "subtype": null,
        "credentials": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<YOUR-STORAGE-ACCOUNT>;AccountKey=<YOUR-STORAGE-KEY>;EndpointSuffix=core.windows.net"
        },
        "container": {
            "name": "<YOUR-BLOB-CONTAINER-NAME>",
            "query": null
        },
        "dataChangeDetectionPolicy": null,
        "dataDeletionDetectionPolicy": null
    }
    
  3. Senden Sie die Anforderung.Send the request. Die Antwort sollte 201 lauten, und der Antworttext sollte mit der von Ihnen angegebenen Anforderungsnutzlast nahezu identisch sein.The response should be 201 and the response body should look almost identical to the request payload you provided.

    {
        "name": "caselaw-ds",
        "description": null,
        "type": "azureblob",
        "subtype": null,
        "credentials": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<your storage account>;AccountKey=<your storage key>;EndpointSuffix=core.windows.net"
        },
        "container": {
            "name": "<your blob container name>",
            "query": null
        },
        "dataChangeDetectionPolicy": null,
        "dataDeletionDetectionPolicy": null
    }
    

Erstellen eines IndexCreate an index

Beim zweiten Aufruf wird die API zum Erstellen eines Index aufgerufen, die einen Azure Search-Index mit allen durchsuchbaren Daten erstellt.The second call is Create Index API, creating an Azure Search index that stores all searchable data. Ein Index gibt alle Felder, Parameter und Attribute an.An index specifies all fields, parameters, and attributes.

Sie benötigen für das Knowledge Mining nicht unbedingt einen Index, es wird aber nur dann ein Indexer ausgeführt, wenn ein Index angegeben wird.You don't necessarily need an index for knowledge mining, but an indexer won't run unless an index is provided.

Die URL für diesen Aufruf lautet https://[service name].search.windows.net/indexes?api-version=2019-05-06-Preview.The URL for this call is https://[service name].search.windows.net/indexes?api-version=2019-05-06-Preview

  1. Ersetzen Sie [service name] durch den Namen Ihres Suchdiensts.Replace [service name] with the name of your search service.

  2. Kopieren Sie die Indexdefinition aus der Anforderung für die Indexerstellung in der Postman-Sammlung in den Anforderungstext.Copy the index definition from the Create Index request in the Postman collection into the request body. Die Indexdefinition ist mehrere hundert Zeilen lang und kann daher hier nicht wiedergegeben werden.The index definition is several hundred lines, too long to print here.

    Die äußere Ebene eines Index besteht aus den folgenden Elementen.The outer shell of an index consists of the following elements.

    {
       "name": "caselaw",
       "defaultScoringProfile": null,
       "fields": [],
       "scoringProfiles": [],
       "corsOptions": null,
       "suggesters": [],
       "analyzers": [],
       "tokenizers": [],
       "tokenFilters": [],
       "charFilters": [],
       "encryptionKey": null
    }
    
  3. Die Sammlung fields enthält den größten Teil der Indexdefinition.The fields collection contains the bulk of the index definition. Sie enthält einfache Felder, komplexe Felder mit geschachtelten Unterstrukturen und Sammlungen.It includes simple fields, complex fields with nested substructures, and collections.

    Sehen Sie sich die Felddefinition für casebody in den Zeilen 302–384 an.Review the field definition for casebody on lines 302-384. Beachten Sie, dass ein komplexes Feld nur dann andere komplexe Felder enthalten kann, wenn hierarchische Darstellungen benötigt werden.Notice that a complex field can contain other complex fields when hierarchical representations are needed.

    {
     "name": "casebody",
     "type": "Edm.ComplexType",
     "fields": [
         {
             "name": "status",
             "type": "Edm.String",
             "searchable": true,
             "filterable": true,
             "retrievable": true,
             "sortable": true,
             "facetable": true,
             "key": false,
             "indexAnalyzer": null,
             "searchAnalyzer": null,
             "analyzer": null,
             "synonymMaps": []
         },
         {
             "name": "data",
             "type": "Edm.ComplexType",
             "fields": [
                 {
                     "name": "head_matter",
                     "type": "Edm.String",
                     "searchable": true,
                     "filterable": false,
                     "retrievable": true,
                     "sortable": false,
                     "facetable": false,
                     "key": false,
                     "indexAnalyzer": null,
                     "searchAnalyzer": null,
                     "analyzer": null,
                     "synonymMaps": []
                 },
                 {
                     "name": "opinions",
                     "type": "Collection(Edm.ComplexType)",
                     "fields": [
                         {
                             "name": "author",
                             "type": "Edm.String",
                             "searchable": true,
                             "filterable": true,
                             "retrievable": true,
                             "sortable": false,
                             "facetable": true,
                             "key": false,
                             "indexAnalyzer": null,
                             "searchAnalyzer": null,
                             "analyzer": null,
                             "synonymMaps": []
                         },
                         {
                             "name": "text",
                             "type": "Edm.String",
                             "searchable": true,
                             "filterable": false,
                             "retrievable": true,
                             "sortable": false,
                             "facetable": false,
                             "key": false,
                             "indexAnalyzer": null,
                             "searchAnalyzer": null,
                             "analyzer": null,
                             "synonymMaps": []
                         },
                         {
                             "name": "type",
                             "type": "Edm.String",
                             "searchable": true,
                             "filterable": true,
                             "retrievable": true,
                             "sortable": false,
                             "facetable": true,
                             "key": false,
                             "indexAnalyzer": null,
                             "searchAnalyzer": null,
                             "analyzer": null,
                             "synonymMaps": []
                         }
                     ]
                 },
     . . .
    
  4. Senden Sie die Anforderung.Send the request.

    Die Antwort sollte 201 lauten und dem folgenden Beispiel ähneln, in dem die ersten Felder gezeigt werden:The response should be 201 and look similar to the following example, showing the first several fields:

    {
        "name": "caselaw",
        "defaultScoringProfile": null,
        "fields": [
            {
                "name": "id",
                "type": "Edm.String",
                "searchable": true,
                "filterable": true,
                "retrievable": true,
                "sortable": true,
                "facetable": true,
                "key": true,
                "indexAnalyzer": null,
                "searchAnalyzer": null,
                "analyzer": null,
                "synonymMaps": []
            },
            {
                "name": "name",
                "type": "Edm.String",
                "searchable": true,
                "filterable": true,
                "retrievable": true,
                "sortable": true,
                "facetable": true,
                "key": false,
                "indexAnalyzer": null,
                "searchAnalyzer": null,
                "analyzer": null,
                "synonymMaps": []
            },
      . . .
    

Erstellen von Qualifikationsgruppen und WissensspeichernCreate a skillset and knowledge store

Die API zum Erstellen einer Qualifikationsgruppe erstellt ein Azure Search-Objekt, das angibt, welche kognitiven Qualifikationen aufgerufen werden sollen, wie die Qualifikationen verkettet werden sollen und wie ein Wissensspeicher angegeben wird (für diese exemplarische Vorgehensweise besonders wichtig).The Create Skillset API creates an Azure Search object that specifies what cognitive skills to call, how to chain skills together, and most importantly for this walkthrough - how to specify a knowledge store.

Der Endpunkt dieses Aufrufs lautet https://[service name].search.windows.net/skillsets?api-version=2019-05-06-Preview.The endpoint of this call is https://[service name].search.windows.net/skillsets?api-version=2019-05-06-Preview

  1. Ersetzen Sie [service name] durch den Namen Ihres Suchdiensts.Replace [service name] with the name of your search service.

  2. Kopieren Sie die Definition der Qualifikationsgruppe aus der Anforderung für die Qualifikationsgruppenerstellung in der Postman-Sammlung in den Anforderungstext.Copy the skillset definition from the Create Skillset request in the Postman collection into the request body. Die Definition der Qualifikationsgruppe ist mehrere hundert Zeilen lang, und kann daher hier nicht gezeigt werden – sie ist aber für diese exemplarische Vorgehensweise besonders wichtig.The skillset definition is several hundred lines, too long to print here, but it is the focus of this walkthrough.

    Die äußere Ebene einer Qualifikationsgruppe besteht aus den folgenden Elementen.The outer shell of a skillset consists of the following elements. Die Sammlung skills definiert die speicherinternen Anreicherungen, während die knowledgeStore-Definition angibt, wie die Ausgabe gespeichert wird.The skills collection defines the in-memory enrichments, but the knowledgeStore definition specifies how the output is stored. Die cognitiveServices-Definition ist Ihre Verbindung mit den Engines zur KI-Anreicherung.The cognitiveServices definition is your connection to the AI enrichment engines.

    {
     "name": "caselaw-ss",
     "description": null,
     "skills": [],
     "cognitiveServices": [],
     "knowledgeStore": []
    }
    
  3. Legen Sie zunächst Schlüssel und Verbindungszeichenfolge für cognitiveServices und knowledgeStore fest.First, set cognitiveServices and knowledgeStore key and connection string. In diesem Beispiel stehen diese Zeichenfolgen hinter der Definition der Qualifikationsgruppe am Ende des Anforderungstexts.In the example, these strings are located after the skillset definition, towards the end of the request body. Verwenden Sie eine Cognitive Services-Ressource, die auf der Dienstebene S0 bereitgestellt wird und sich in der gleichen Region wie Azure Search befindet.Use a Cognitive Services resource, provisioned at the S0 tier, located in the same region as Azure Search.

    "cognitiveServices": {
        "@odata.type": "#Microsoft.Azure.Search.CognitiveServicesByKey",
        "description": "YOUR-SAME-REGION-S0-COGNITIVE-SERVICES-RESOURCE",
        "key": "YOUR-COGNITIVE-SERVICES-KEY"
    },
    "knowledgeStore": {
        "storageConnectionString": "YOUR-STORAGE-ACCOUNT-CONNECTION-STRING",
    
  4. Überprüfen Sie die Sammlung der Qualifikationsgruppe – insbesondere die Shaper-Qualifikationen in den Zeilen 85 und 170.Review the skills collection, in particular the Shaper skills on lines 85 and 170, respectively. Die Qualifikation „Shaper“ ist wichtig, da sie die Datenstrukturen für das Knowledge Mining umfasst.The Shaper skill is important because it assembles the data structures you want for knowledge mining. Während der Ausführung der Qualifikationsgruppe befinden sich diese Strukturen ausschließlich im Arbeitsspeicher. Sie werden aber im nächsten Schritt sehen, dass diese Ausgabe für die weitere Untersuchung in einem Wissensspeicher gespeichert werden kann.During skillset execution, these structures are in-memory only, but as you move to the next step, you'll see how this output can be saved to a knowledge store for further exploration.

    Der folgende Codeausschnitt stammt aus Zeile 217.The following snippet is from line 217.

    "name": "Opinions",
    "source": null,
    "sourceContext": "/document/casebody/data/opinions/*",
    "inputs": [
        {
            "name": "Text",
            "source": "/document/casebody/data/opinions/*/text"
        },
        {
            "name": "Author",
            "source": "/document/casebody/data/opinions/*/author"
        },
        {
            "name": "Entities",
            "source": null,
            "sourceContext": "/document/casebody/data/opinions/*/text/pages/*/entities/*",
            "inputs": [
                {
                    "name": "Entity",
                    "source": "/document/casebody/data/opinions/*/text/pages/*/entities/*/value"
                },
                {
                    "name": "EntityType",
                    "source": "/document/casebody/data/opinions/*/text/pages/*/entities/*/category"
                }
            ]
        }
    ]
    . . .
    
  5. Sehen Sie sich das projections-Element in knowledgeStore an, das ab Zeile 262 beginnt.Review the projections element in knowledgeStore, starting on line 262. Projektionen geben die Zusammensetzung des Wissensspeichers an.Projections specify the knowledge store composition. Projektionen werden in Tabelle-Objekt-Paaren angegeben – derzeit jedoch nur einzeln.Projections are specified in tables-objects pairs, but currently only one at time. Wie Sie in der ersten Projektion sehen können, ist tables angegeben, objects aber nicht.As you can see in the first projection, tables is specified but objects is not. Im zweiten Fall ist es umgekehrt.In the second, it's the opposite.

    In Azure Storage werden die von Ihnen erstellten Tabellen im Tabellenspeicher gespeichert, und jedes Objekt erhält einen Container in Blob Storage.In Azure storage, tables will be created in Table storage for each table you create, and each object gets a container in Blob storage.

    Blobobjekte enthalten in der Regel den vollständigen Ausdruck einer Anreicherung.Blob objects typically contain the full expression of an enrichment. Tabellen enthalten in der Regel teilweise Anreicherungen in Kombinationen, die Sie für bestimmte Zwecke festlegen.Tables typically contain partial enrichments, in combinations that you arrange for specific purposes. Dieses Beispiel zeigt die Tabellen „Cases“ und „Opinions“, nicht gezeigt werden jedoch andere Tabellen wie „Entities“, „Attorneys“ „Judges“ und „Parties“.This example shows a Cases table and an Opinions table, but not shown are other tables like Entities, Attorneys, Judges, and Parties.

    "projections": [
        {
            "tables": [
                {
                    "tableName": "Cases",
                    "generatedKeyName": "CaseId",
                    "source": "/document/Case"
                },
                {
                    "tableName": "Opinions",
                    "generatedKeyName": "OpinionId",
                    "source": "/document/Case/OpinionsSnippets/*"
                }
            ],
            "objects": []
        },
        {
            "tables": [],
            "objects": [
                {
                    "storageContainer": "enrichedcases",
    
                    "source": "/document/CaseFull"
                }
            ]
        }
    ]
    
  6. Senden Sie die Anforderung.Send the request. Die Antwort sollte 201 lauten und dem folgenden Beispiel ähneln, in dem der erste Teil der Antwort gezeigt wird:The response should be 201 and look similar to the following example, showing the first part of the response.

    {
    "name": "caselaw-ss",
    "description": null,
    "skills": [
        {
            "@odata.type": "#Microsoft.Skills.Text.SplitSkill",
            "name": "SplitSkill#1",
            "description": null,
            "context": "/document/casebody/data/opinions/*/text",
            "defaultLanguageCode": "en",
            "textSplitMode": "pages",
            "maximumPageLength": 5000,
            "inputs": [
                {
                    "name": "text",
                    "source": "/document/casebody/data/opinions/*/text
                }
            ],
            "outputs": [
                {
                    "name": "textItems",
                    "targetName": "pages"
                }
            ]
        },
        . . .
    

Erstellen und Ausführen eines IndexersCreate and run an indexer

Die API zum Erstellen eines Indexers erstellt einen Indexer und führt diesen sofort aus.The Create Indexer API creates and immediately executes an indexer. Alle Definitionen, die Sie bisher erstellt haben, werden in diesem Schritt gestartet.All of the definitions you have created so far are put into motion with this step. Der Indexer wird sofort ausgeführt, da er nicht im Dienst enthalten ist.The indexer runs immediately because it doesn't exist in the service. Wenn er vorhanden ist, stellt ein POST-Aufruf an einen vorhandenen Indexer einen Updatevorgang dar.After it exists, a POST call to an existing indexer is an update operation.

Der Endpunkt dieses Aufrufs lautet https://[service name].search.windows.net/indexers?api-version=2019-05-06-Preview.The endpoint of this call is https://[service name].search.windows.net/indexers?api-version=2019-05-06-Preview

  1. Ersetzen Sie [service name] durch den Namen Ihres Suchdiensts.Replace [service name] with the name of your search service.

  2. Der Anforderungstext für diesen Aufruf gibt den Namen des Indexers an.For this call, the request body specifies the indexer name. Für den Indexer sind eine Datenquelle und ein Index erforderlich.A data source and index are required by the indexer. Eine Qualifikationsgruppe ist für einen Indexer optional, bei KI-Anreicherungen aber erforderlich.A skillset is optional for an indexer, but required for AI enrichment.

    {
        "name": "caselaw-idxr",
        "description": null,
        "dataSourceName": "caselaw-ds",
        "skillsetName": "caselaw-ss",
        "targetIndexName": "caselaw",
        "disabled": null,
        "schedule": null,
        "parameters": {
            "batchSize": 1,
            "maxFailedItems": null,
            "maxFailedItemsPerBatch": null,
            "base64EncodeKeys": null,
            "configuration": {
                "parsingMode": "jsonLines"
            }
        },
        "fieldMappings": [],
        "outputFieldMappings": [
            {
                "sourceFieldName": "/document/casebody/data/opinions/*/text/pages/*/people/*",
                "targetFieldName": "people",
                "mappingFunction": null
            },
            {
                "sourceFieldName": "/document/casebody/data/opinions/*/text/pages/*/organizations/*",
                "targetFieldName": "orginizations",
                "mappingFunction": null
            },
            {
                "sourceFieldName": "/document/casebody/data/opinions/*/text/pages/*/locations/*",
                "targetFieldName": "locations",
                "mappingFunction": null
            },
            {
                "sourceFieldName": "/document/Case/OpinionsSnippets/*/Entities/*",
                "targetFieldName": "entities",
                "mappingFunction": null
            },
            {
                "sourceFieldName": "/document/casebody/data/opinions/*/text/pages/*/keyPhrases/*",
                "targetFieldName": "keyPhrases",
                "mappingFunction": null
            }
        ]
    }
    
  3. Senden Sie die Anforderung.Send the request. Die Antwort sollte 201 lauten, und der Antworttext sollte mit der von Ihnen angegebenen Anforderungsnutzlast nahezu identisch sein (der Übersichtlichkeit halber gekürzt).The response should be 201 and the response body should look almost identical to the request payload you provided (trimmed for brevity).

    {
        "name": "caselaw-idxr",
        "description": null,
        "dataSourceName": "caselaw-ds",
        "skillsetName": "caselaw-ss",
        "targetIndexName": "caselaw",
        "disabled": null,
        "schedule": null,
        "parameters": {
            "batchSize": 1,
            "maxFailedItems": null,
            "maxFailedItemsPerBatch": null,
            "base64EncodeKeys": null,
            "configuration": {
                "parsingMode": "jsonLines"
            }
        },
        "fieldMappings": [],
        "outputFieldMappings": [
            {
                "sourceFieldName": "/document/casebody/data/opinions/*/text/pages/*/people/*",
                "targetFieldName": "people",
                "mappingFunction": null
            }
        ]
    }
    

Erkunden von WissensspeichernExplore knowledge store

Sie können mit dem Erkunden beginnen, sobald das erste Dokument importiert wurde.You can start exploring as soon as the first document is imported. Verwenden Sie für diese Aufgabe den Storage-Explorer im Portal.For this task, use Storage Explorer in the portal.

Es ist wichtig zu wissen, dass ein Wissensspeicher vollständig von Azure Search unabhängig ist.It's important to realize that a knowledge store is fully detached from Azure Search. Sowohl der Azure Search-Index als auch der Wissensspeicher enthalten die Datendarstellung und die Inhalte, aber bei allem anderen unterscheiden sie sich.The Azure Search index and the knowledge store both contain data representation and contents, but part ways from there. Verwenden Sie den Index für Volltextsuchen, gefilterte Suchen und alle Szenarien, die in Azure Search unterstützt werden.Use the index for full text search, filtered search, and all the scenarios supported in Azure Search. Oder arbeiten Sie im Weiteren ausschließlich mit Ihrem Wissensspeicher, und fügen Sie andere zum Analysieren von Inhalten an.Or, move forward with just your knowledge store, attaching other tools to analyze contents.

Wesentliche PunkteTakeaways

Sie haben nun Ihren ersten Wissensspeicher in Azure Storage erstellt und mit Storage-Explorer die Anreicherungen angezeigt.You've now created your first knowledge store in Azure storage and used Storage Explorer to view the enrichments. Dies sind die grundlegenden Schritte für die Arbeit mit gespeicherten Anreicherungen.This is the fundamental experience for working with stored enrichments.

Nächste SchritteNext steps

Die Qualifikation „Shaper“ erledigt die meisten Aufgaben für das Erstellen von granularen Datenformen, die in neuen Formen kombiniert werden können.The Shaper skill does the heavy lifting on creating granular data forms that can be combined into new shapes. Sehen Sie sich als Nächstes die Referenzseite für diese Qualifikation an, um Einzelheiten zu ihrer Verwendung zu erfahren.As a next step, review the reference page for this skill for details on how it's used.