Nach Dataverse-Datensätzen suchen

Dataverse liefert schnelle und umfassende Suchergebnisse für mehrere Tabellen in einer Liste, sortiert nach Relevanz. Es bietet auch Funktionen zur Unterstützung von Vorschlägen und Autovervollständigungserlebnissen in Apps.

Hinweis

In dieser Dokumentation für Entwicklungsfachkräfte wird beschrieben, wie sie programmgesteuert mit den Dataverse-Such-APIs interagieren.

Informationen zur Benutzererfahrung und zur Konfiguration der Dataverse-Suche für Ihre Umgebung finden Sie in den folgenden Themen:

Verwendung

Entwicklungsfachkräfte können die Such-APIs auf drei verschiedene Arten nutzen:

  • Das Dataverse SDK für .NET
  • Den Web-API-/api/data/v9.x-Endpunkt
  • Den /api/search/v2.0/-Endpunkt für die native Suche

Suchvorgänge sind als Dataverse-Nachrichten festgelegt, die benutzerdefinierte APIs verwenden. Für .NET-Projekte können Sie das SDK für .NET verwenden.

Derzeit sind im SDK keine Klassen zur Verwendung dieser Vorgänge enthalten. Für .NET Framework-Projekte können Sie das Power Platform-CLI pac-modelbuilder-Build verwenden, um *Request- und *Response-Klassen für diese Nachrichten zu generieren, wie für jede andere benutzerdefinierte Aktion auch.

Sie können auch die OrganizationRequest- und OrganizationResponse-Klassen verwenden.

Weitere Informationen:

Suchvorgänge

Die Suche bietet drei Vorgänge zur Unterstützung einer Benutzeroberfläche, die die Suche nach Daten ermöglicht.

SDK Message Name
Web-API-Aktion
Suche-2.0-Endpunkt
Beschreibung
searchquery
searchquery-Aktion
/api/search/v2.0/query
Gibt eine Suchergebnisseite zurück.
Siehe Dataverse-Suchabfrage
searchsuggest
searchsuggest-Aktion
/api/search/v2.0/suggest
Liefert Vorschläge, wenn Benutzende Text in ein Formularfeld eingeben.
Siehe Dataverse-Suchvorschlag
searchautocomplete
searchautocomplete-Aktion
/api/search/v2.0/autocomplete
Ermöglicht die automatische Vervollständigung von Eingaben, wenn Benutzende Text in ein Formularfeld eingeben.
Siehe Dataverse-AutoVervollständigen-Suche

Es gibt auch zwei Vorgänge, mit denen Sie nachvollziehen können, ob die Suche aktiviert und wie sie konfiguriert ist.

SDK Message Name
Web-API-Funktion
Suche-2.0-Endpunkt
Beschreibung
searchstatistics
searchstatistics-Funktion
/api/search/v2.0/statistics
Stellt die Organisationsspeichergröße und Dokumentenanzahl bereit.
Siehe Dataverse-Suchstatistiken
searchstatus
searchstatus-Funktion
/api/search/v2.0/status
Suchstatus einer Organisation.
Siehe Dataverse-Suchstatus

Wenn Sie Insomnia mit der Dataverse-Web-API verwendet haben, wissen Sie bereits, wie nützlich es ist, die APIs auszuprobieren. Wir haben einige Anweisungen zum Einrichten einer Insomnia-Umgebung zur Authentifizierung bei der Dataverse-Web-API: Insomnia mit der Dataverse-Web-API verwenden

Sie können dieselben Anweisungen für die Suchvorgänge mithilfe von Web-API-Funktionen und -Aktionen verwenden. Wenn Sie den nativen Suche-2.0-Endpunkt verwenden möchten, ändern Sie diese beiden Umgebungsvariablen:

Variable Web-API-Wert Suche-2.0-Endpunktwert
version 9.2 2.0
webapiurl {{url}}/api/data/v{{version}}/ {{url}}/api/search/v{{version}}/

Erkennen, ob die Suche aktiviert ist

Die Dataverse-Suche ist für Produktionsumgebungen standardmäßig aktiviert, es handelt sich jedoch um ein Opt-out-Feature, sodass es auch in einer Produktionsumgebung deaktiviert werden kann. Wenn Sie eine andere Umgebung als eine Produktionsumgebung verwenden, muss diese durch die Administration aktiviert werden. Erfahren Sie, wie Sie die Suche im Admin Center aktivieren.

Fehler, wenn die Suche nicht aktiviert ist

Wenn Sie die Abfrage-, Vorschlags- oder Autovervollständigungsvorgänge verwenden und die Umgebung nicht aktiviert ist, erhalten Sie folgende Fehlermeldungen:

Fehlercode: -2147185397 Nachricht: Dataverse Search feature is disabled for this organization.

Sie können feststellen, ob der Suchdienst aktiviert ist, indem Sie die Einstellungen in der Organisationstabelle überprüfen oder den Vorgang Dataverse-Suchstatus verwenden.

Die Organisationstabelle überprüfen

Die Organisationstabelle enthält eine einzelne Datenzeile, die steuert, wie die Organisation konfiguriert ist. In der booleschen Spalte IsExternalSearchIndexEnabled erfahren Sie, ob die Suche für die Organisation aktiviert ist.

Diese Funktion gibt den IsExternalSearchIndexEnabled-Eigenschaftswert für die Organisation zurück.

static bool IsExternalSearchIndexEnabled(IOrganizationService service) {

    QueryExpression query = new QueryExpression("organization") { 
        ColumnSet = new ColumnSet("isexternalsearchindexenabled")
    };

    EntityCollection organizations = service.RetrieveMultiple(query);
    return (bool)organizations.Entities.FirstOrDefault()["isexternalsearchindexenabled"];
}

Weitere Informationen: Erstellen von Abfragen mit QueryExpression

Welche Tabellen und Spalten für die Suche aktiviert sind, wird von den Daten in Dataverse gesteuert.

Tabellen aktivieren

Für die Dataverse-Suche können nur die Tabellen aktiviert werden, für welche die Eigenschaft EntityMetadata.CanEnableSyncToExternalSearchIndex.Value und die Eigenschaft EntityMetadata.ChangeTrackingEnabled wahr ist. Wenn der CanEnableSyncToExternalSearchIndex.CanBeChanged-Wert falsch ist, können Sie ihn nicht ändern. Weitere Informationen: Verwaltete Eigenschaften

Um eine Tabelle für die Dataverse Suche zu aktivieren, legen Sie die Eigenschaft EntityMetadata.SyncToExternalSearchIndex auf true fest.

Sie können die Werte für eine Tabelle mit dem SDK oder der Web-API anhand des logischen Tabellennamens überprüfen. Ersetzen Sie account in den folgenden Abfragen durch den logischen Namen der Tabelle, die Sie überprüfen möchten.

static void RetrieveSearchSettingsForTable(IOrganizationService service, string logicalName = "account") {

    RetrieveMetadataChangesRequest request = new RetrieveMetadataChangesRequest() { 
            Query = new EntityQueryExpression() { 
                Properties = new MetadataPropertiesExpression(
                    "CanEnableSyncToExternalSearchIndex", 
                    "SyncToExternalSearchIndex")
            }
    };
    request.Query.Criteria.Conditions.Add(
        new MetadataConditionExpression(
            propertyName: "LogicalName", 
            conditionOperator: MetadataConditionOperator.Equals, 
            value: logicalName));

    var response = (RetrieveMetadataChangesResponse)service.Execute(request);

    EntityMetadata table = response.EntityMetadata.FirstOrDefault();

    Console.WriteLine($"CanEnableSyncToExternalSearchIndex: {table.CanEnableSyncToExternalSearchIndex.Value}");
    Console.WriteLine($"SyncToExternalSearchIndex: {table.SyncToExternalSearchIndex}");
}

Output

CanEnableSyncToExternalSearchIndex: True
SyncToExternalSearchIndex: True

Weitere Informationen:

Weitere Informationen:

Spalten aktivieren

Die für die Tabelle durchsuchbaren Spalten hängen davon ab, ob sie in der Ansicht für die Schnellsuche für die einzelnen Tabellen enthalten sind. Sie können die Definition der Ansicht in der „Ansicht (SavedQuery)“-Tabelle abfragen und programmgesteuert aktualisieren.

Weitere Informationen:

Grenzwerte für den Serviceschutz

Die allgemeinen Dataverse API-Grenzwerte für den Dienstschutz werden niemals erreicht, da die Dataverse-Suche einen niedrigeren Grenzwert anwendet. Sie verwalten diese auf die gleiche Art und Weise.

Die Dataverse-Suche ermöglicht es Benutzenden, eine Anforderung pro Sekunde zu senden. Jede Organisation ist auf 150 Anforderungen pro Minute beschränkt. Wenn Sie diesen Grenzwert überschreiten, wird der Fehler 429 zu viele Anforderungen zurückgegeben. Wenn ein 429-Fehler zurückgegeben wird, sollten Sie warten, bis der im Retry-After-Antwortheaderwert festgelegte Zeitraum abgelaufen ist, bevor Sie weitere Anforderungen senden. Der Wert gibt die Anzahl der Sekunden, die gewartet werden sollten.

Siehe auch

Dataverse-Suchabfrage
Dataverse-Suchvorschlag
Dataverse AutoVervollständigen-Suche
Dataverse-Suchstatistiken und -Status
Dataverse-Legacysuche
Die Dataverse-Suche in Ihrer Umgebung konfigurieren

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).