Dataverse-AutoVervollständigen-Suche
Mit der AutoVervollständigen-API können Konsumenten einen teilweisen Suchabfragebegriff an die Dataverse-Suche senden und den Suchbegriff zurückerhalten, der die potenzielle Benutzerabsicht darstellt.
Verwenden Sie diese API, um ein umfassenderes Suchfelderlebnis zu unterstützen. Wenn Benutzende die einzelnen Zeichen seines Suchbegriffs eingeben, wird AutoVervollständigen aufgerufen und die Abfrage des Suchfelds mit dem AutoVervollständigen-Ergebnis ausgefüllt, um eine Wortvervollständigung durch die Vorschlagssuche zu ermöglichen. Beispiel: Bei Eingabe von set
schlägt AutoVervollständigen settings
vor:
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 Suchbegriff | search -Parameter |
entities |
Zeichenfolge | Der Standardbereich ist das Durchsuchen aller für die Suche konfigurierten Entitäten und Felder. | entities -Parameter |
filter |
Zeichenfolge | Filterkriterien zur Reduzierung der zurückgegebenen Ergebnisse. | filter -Parameter |
fuzzy |
Boolesch | Fuzzysuche als Hilfe bei Rechtschreibfehlern. Der Standardwert ist false. | fuzzy -Parameter |
Parameter
Dieser Abschnitt enthält Einzelheiten zu den Parametern in der obigen Tabelle.
search
-Parameter
Typ: Zeichenfolge
Optional: falsch
Der Suchbegriff muss mindestens ein Zeichen lang sein und ist auf 100 Zeichen begrenzt.
entities
-Parameter
Typ: Zeichenfolge
Optional: wahr
Der Standardbereich ist das Durchsuchen aller für die Suche konfigurierten Entitäten und Felder. Dieser Parameter verwendet denselben SearchEntity-Abfragetyp, der von der Abfrage-API verwendet wird.
filter
-Parameter
Typ: Zeichenfolge
Optional: wahr
Filterkriterien zur Reduzierung der zurückgegebenen Ergebnisse. Dieser Parameter verwendet dieselben Zeichenfolgenwerte wie Abfragefilterparameter.
fuzzy
-Parameter
Typ: boolesch
Optional: wahr
Fuzzysuche als Hilfe bei Rechtschreibfehlern. Der Standardwert ist false.
Wenn diese API auf „wahr“ gesetzt ist, findet sie Vorschläge auch dann, wenn im Suchtext ein Zeichen ausgetauscht wird oder fehlt. Der Bearbeitungsabstand beträgt 1 pro Abfragezeichenfolge. Wenn die Abfragezeichenfolge aus mehreren Begriffen besteht, darf die gesamte Zeichenfolge nur ein einziges fehlendes, zusätzliches, ersetztes oder vertauschtes Zeichen enthalten. Die Aktivierung von Fuzzy-Übereinstimmungen kann in manchen Szenarien eine bessere Erfahrung bieten, geht jedoch mit Leistungseinbußen einher, da Fuzzy-Vorschlagssuchen langsamer sind und mehr Ressourcen verbrauchen.
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 |
Zeichenfolge | Der Text. |
QueryContext |
QueryContext | Diese Eigenschaft wird für die Back-End-Suche verwendet. Sie ist in zukünftigen Featurereleases enthalten und wird derzeit nicht verwendet. |
Antworttypen
Die Antwort gibt die folgenden Typen zurück:
ErrorDetail
Dieser Typ ist dasselbe ErrorDetail, das von der Abfrage-API zurückgegeben wird.
QueryContext
Dieser Typ ist derselbe QueryContext, der von der Abfrage-API zurückgegeben wird.
Beispiele
Im folgenden Beispiel wird gezeigt, wie der AutoVervollständigen-Vorgang verwendet werden. Diese Beispiele geben AutoVervollständigen-Ergebnisse für das Kontotabellenfeld name
zurück.
Dieses Beispiel stammt aus dem Beispiel für das SDK für den .NET-Suchvorgang auf GitHub. Die statische OutputAutoComplete
Methode akzeptiert einen Wert für den Suchparameter.
/// <summary>
/// Demonstrate autocomplete API
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance to use.</param>
/// <param name="searchTerm">The term to use</param>
/// <returns></returns>
static void OutputAutoComplete(IOrganizationService service, string searchTerm)
{
Console.WriteLine("OutputAutoComplete START\n");
searchautocompleteRequest request = new()
{
search = searchTerm,
filter = null,
fuzzy = true,
entities = JsonConvert.SerializeObject(new List<SearchEntity>()
{
new SearchEntity()
{
Name = "account",
SelectColumns = new List<string>() { "name", "createdon" },
SearchColumns = new List<string>() { "name" },
}
}
)
};
var searchautocompleteResponse = (searchautocompleteResponse)service.Execute(request);
SearchAutoCompleteResults results = JsonConvert.DeserializeObject<SearchAutoCompleteResults>(searchautocompleteResponse.response);
Console.WriteLine($"\tSearch: {request.search}");
Console.WriteLine($"\tValue: {results.Value}");
Console.WriteLine("\nOutputAutoComplete END\n");
}
Ausgabe
Wenn Sie die OutputAutoComplete
-Methode mit einer authentifizierten Instanz der ServiceClient-Klasse aufrufen, wobei searchTerm
auf „Con“ gesetzt ist:
OutputAutoComplete(service: serviceClient, searchTerm: "Con");
Die Ausgabe sieht ungefähr wie folgt aus:
OutputAutoComplete START
Search: Con
Value: {crmhit}contoso{/crmhit}
OutputAutoComplete END
Unterstützende Klassen
Die OutputAutoComplete
-Methode hängt von den folgenden unterstützenden Klassen ab, um die Anfrage zu senden und das Ergebnis zu verarbeiten:
searchautocompleteRequest- und searchautocompleteResponse-Klassen
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.
SearchEntity-Klasse
Diese Klasse ist dieselbe SearchEntity
-Klasse, die für das Abfragebeispiel verwendet wird. In diesem Fall verwenden Sie es, um die searchautocompleteRequest.entities
-Eigenschaft festzulegen.
SearchAutoCompleteResults-Klasse
Wird zum Deserialisieren von JSON-Daten aus der Zeichenfolgeneigenschaft searchautocompleteResponse.response
verwendet.
class SearchAutoCompleteResults
{
/// <summary>
/// The Azure Cognitive error detail returned as part of response.
/// </summary>
public ErrorDetail? Error { get; set; }
/// <summary>
/// The text
/// </summary>
public string? Value { get; set; }
/// <summary>
/// This request is used for backend search, this is included for future feature releases, it is not currently used.
/// </summary>
public QueryContext? QueryContext { get; set; }
}
ErrorDetail-Klasse
Diese Klasse ist dieselbe ErrorDetail
-Klasse, die für das Abfragebeispiel verwendet wird.
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-Suchvorschlag
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).