Teilen über


Dataverse-Suchvorschlag

Verwenden Sie diese API, um ein umfassenderes Suchfelderlebnis zu unterstützen. Zum Beispiel kann, während Benutzende ihre Suchbegriffe eingeben, diese API aufgerufen und die Dropdownliste des Suchfelds mit den vorgeschlagenen Abfrageergebnissen befüllt werden.

Zusätzlich zu einem Suchbegriff können die zurückgegebenen Ergebnisse auch durch die Übergabe von Werten für die folgenden Parameter beeinflusst werden:

Name des Dataflows typ Beschreibung Weitere Informationen
search Zeichenfolge Erforderlich Der Text, mit dem Sie suchen. Suchparameter
entities Zeichenfolge Die Standardeinstellung ist die Suche in allen für die Suche konfigurierten Entitäten. entities-Parameter
filter Zeichenfolge Filterkriterien zur Reduzierung der zurückgegebenen Ergebnisse. filter-Parameter
fuzzy Boolesch Verwenden Sie die Fuzzysuche als Hilfe bei Rechtschreibfehlern. Der Standardwert ist false. fuzzy-Parameter
options Zeichenfolge Optionen sind Einstellungen, die für die Suche nach einem Suchbegriff konfiguriert sind. Zum Beispiel "{ 'advancedsuggestenabled': 'true' }". options-Parameter
orderby Zeichenfolge Liste kommagetrennter Klauseln, wobei jede Klausel aus einem Attributnamen, gefolgt von asc oder desc besteht. orderby-Parameter
top Int Die Gesamtanzahl der abzurufenden Vorschläge. Der Standard ist 5. top-Parameter

Parameter

Dieser Abschnitt enthält Einzelheiten zu den in der obenstehenden Tabelle eingeführten Parametern.

search-Parameter

Typ: Zeichenfolge
Optional: falsch

Der Text, mit dem Sie suchen. Der Suchbegriff muss mindestens drei Zeichen lang sein und ist auf 100 Zeichen begrenzt.

entities-Parameter

Typ: Zeichenfolge
Optional: wahr

Die Standardeinstellung ist die Suche in allen für die Suche konfigurierten Entitäten. Verwenden Sie diese Eigenschaft, um die Ergebnisse einzugrenzen.

filter-Parameter

Typ: Zeichenfolge
Optional: wahr

Filterkriterien zur Reduzierung der zurückgegebenen Ergebnisse basierend auf Datensätzen, die den Filterkriterien entsprechen.

fuzzy-Parameter

Typ: boolesch
Optional: wahr

Verwenden Sie die Fuzzysuche als Hilfe bei Rechtschreibfehlern. Der Standardwert ist false.

options-Parameter

Typ: Zeichenfolge
Optional: wahr

Optionen sind Einstellungen, die für die Suche nach einem Suchbegriff konfiguriert sind. Gültige Optionen für die Vorschlagsabfrage sind:

"{ 'advancedsuggestenabled': 'true' }".

orderby-Parameter

Typ: Zeichenfolge
Optional: wahr

Liste kommagetrennter Klauseln, wobei jede Klausel aus einem Attributnamen, gefolgt von asc oder desc besteht.

top-Parameter

Typ: Integer
Optional: wahr

Die Gesamtanzahl der abzurufenden Vorschläge. Der Standard ist 5.

Antworten

Die Antwort des Vorschlagsvorgangs ist eine maskierte Zeichenfolge, die JSON-Daten enthält.

Die Antwort ohne maskierte Zeichen enthält JSON mit den folgenden Eigenschaften.

Name des Dataflows typ Beschreibung
Error ErrorDetail Stellt Fehlerinformationen aus der Azure Cognitive Search bereit.
Value SuggestResult[] Eine Sammlung übereinstimmender Datensätze.
QueryContext QueryContext Der als Teil der Antwort zurückgegebene Abfragekontext. Diese Eigenschaft wird für die Back-End-Suche verwendet. Es ist für zukünftige Featurereleases enthalten und wird derzeit nicht verwendet.

Antworttypen

Die Antwort gibt die folgenden Typen zurück:

ErrorDetail

Dies ist dasselbe ErrorDetail, das von der Abfrage-API zurückgegeben wird.

SuggestResult

Stellt den vorgeschlagenen Text bereit.

Name des Dataflows typ Beschreibung
Text Zeichenfolge Stellt den vorgeschlagenen Text bereit.
Document Dictionary<string, object> Das Dokument.

QueryContext

Dieser ist derselbe QueryContext, der von der Abfrage-API zurückgegeben wird.

Beispiele

Im folgenden Beispiel wird gezeigt, wie diese Vorschlagsvorgänge verwendet werden. Jedes dieser Beispiele übergibt den Wert „Cont“ als Suchparameter und fordert die drei besten Vorschläge an.

Dieses Beispiel stammt aus dem Beispiel für das SDK für den .NET-Suchvorgang auf GitHub. Die statische OutputSearchSuggest-Methode gibt die drei besten Vorschläge für jeden Suchbegriff zurück.

/// <summary>
/// Demonstrate suggest API
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance to use.</param>
/// <param name="searchTerm">The term to use</param>
/// <returns></returns>
static void OutputSearchSuggest(IOrganizationService service, string searchTerm)
{
    Console.WriteLine("OutputSearchSuggest START\n");

    searchsuggestRequest request = new()
    {
        search = searchTerm,
        top = 3
    };

    var searchsuggestResponse = (searchsuggestResponse)service.Execute(request);

    SearchSuggestResults results = JsonConvert.DeserializeObject<SearchSuggestResults>(searchsuggestResponse.response);

    results.Value?.ForEach(suggestion =>
    {
        Console.WriteLine($"\tText:{suggestion.Text}");
        Console.WriteLine("\tDocument: ");
        foreach (string key in suggestion.Document.Keys)
        {
            Console.WriteLine($"\t\t{key}: {suggestion.Document[key]}");
        }
        Console.WriteLine();
    });

    Console.WriteLine("OutputSearchSuggest END\n");
}

Ausgabe

Wenn Sie die OutputSearchSuggest-Methode mit einer authentifizierten Instanz der ServiceClient-Klasse aufrufen, wobei searchTerm auf „Cont“ gesetzt ist:

OutputSearchSuggest(service: serviceClient, searchTerm: "Cont");

Die Ausgabe sieht ungefähr wie folgt aus:

OutputSearchSuggest START

        Text:{crmhit}cont{/crmhit}act
        Document:
                @search.objectid: 9335eda1-ef69-ee11-9ae7-000d3a88a4a2
                @search.entityname: contact
                @search.objecttypecode: 2
                fullname: Yvonne McKay (sample)

        Text:{crmhit}cont{/crmhit}act
        Document:
                @search.objectid: 9535eda1-ef69-ee11-9ae7-000d3a88a4a2
                @search.entityname: contact
                @search.objecttypecode: 2
                fullname: Susanna Stubberod (sample)

        Text:{crmhit}cont{/crmhit}act
        Document:
                @search.objectid: 9735eda1-ef69-ee11-9ae7-000d3a88a4a2
                @search.entityname: contact
                @search.objecttypecode: 2
                fullname: Nancy Anderson (sample)

OutputSearchSuggest END

Unterstützende Klassen

Die OutputSearchSuggest-Methode hängt von den folgenden unterstützenden Klassen ab, um die Anfrage zu senden und das Ergebnis zu verarbeiten.

searchsuggestRequest- und searchsuggestResponse-Klasse

Diese Klassen werden mit dem Power Platform CLI-Befehl pac modelbuilder uild generiert, wie unter Generieren von Klassen mit früher Bindung für das SDK für .NET beschrieben.

ErrorDetail-Klasse

Diese Klasse ist dieselbe ErrorDetail-Klasse, die für das Abfragebeispiel verwendet wird.

SuggestResults-Klasse

Wird verwendet, um die Daten aus der searchsuggestResponse.response-Eigenschaft zu deserialisieren

class SearchSuggestResults
{
   /// <summary>
   /// Provides error information from Azure Cognitive search.
   /// </summary>
   [JsonProperty(PropertyName = "Error")]
   public ErrorDetail? Error { get; set; }

   /// <summary>
   /// A collection of matching records.
   /// </summary>
   public List<SuggestResult>? Value { get; set; }

   /// <summary>
   /// The query context returned as part of response. This property is used for backend search, this is included for future feature releases, it is not currently used.
   /// </summary>
   public QueryContext? QueryContext { get; set; }
}
SuggestResult-Klasse

Ergebnisobjekt für vorgeschlagene Ergebnisse.

public sealed class SuggestResult
{
   /// <summary>
   /// Gets or sets the text.
   /// </summary>
   [JsonProperty(PropertyName = "text")]
   public string Text { get; set; }

   /// <summary>
   /// Gets or sets document.
   /// </summary>
   [JsonProperty(PropertyName = "document")]
   public Dictionary<string, object> Document { get; set; }
}
QueryContext-Klasse

Diese Klasse ist dieselbe QueryContext-Klasse, die für das Abfragebeispiel verwendet wird.

Siehe auch

Nach Dataverse-Datensätzen suchen
Dataverse-Suchabfrage
Dataverse AutoVervollständigen-Suche
Dataverse-Suchstatistiken und -Status
Dataverse-Legacysuche

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).