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 | 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 | 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 | 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: aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
@search.entityname: contact
@search.objecttypecode: 2
fullname: Yvonne McKay (sample)
Text:{crmhit}cont{/crmhit}act
Document:
@search.objectid: bbbbbbbb-1111-2222-3333-cccccccccccc
@search.entityname: contact
@search.objecttypecode: 2
fullname: Susanna Stubberod (sample)
Text:{crmhit}cont{/crmhit}act
Document:
@search.objectid: cccccccc-2222-3333-4444-dddddddddddd
@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