SearchClient.GetDocumentAsync<T> Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft ein Dokument aus Azure Cognitive Search ab. Dies ist nützlich, wenn ein Benutzer auf ein bestimmtes Suchergebnis klickt und Sie spezifische Details zu diesem Dokument prüfen möchten. Sie können jeweils nur ein Dokument abrufen. Mit dem Suchvorgang können Sie mehrere Dokumente in einer Anforderung abfragen. Dokument suchen
public virtual System.Threading.Tasks.Task<Azure.Response<T>> GetDocumentAsync<T> (string key, Azure.Search.Documents.GetDocumentOptions options = default, System.Threading.CancellationToken cancellationToken = default);
abstract member GetDocumentAsync : string * Azure.Search.Documents.GetDocumentOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Azure.Response<'T>>
override this.GetDocumentAsync : string * Azure.Search.Documents.GetDocumentOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Azure.Response<'T>>
Public Overridable Function GetDocumentAsync(Of T) (key As String, Optional options As GetDocumentOptions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As Task(Of Response(Of T))
Typparameter
- T
Der .NET-Typ, der dem Indexschema zugeordnet ist. Instanzen dieses Typs können als Dokumente aus dem Index abgerufen werden.
Parameter
- key
- String
Erforderlich. Ein Zeichenfolgenwert, der jedes Dokument im Index eindeutig identifiziert. Der Schlüssel wird manchmal als Dokument-ID bezeichnet. Weitere Informationen finden Sie unter Benennungsregeln für die Regeln zum Erstellen gültiger Dokumentschlüssel.
- options
- GetDocumentOptions
Optionen zum Anpassen des Vorgangsverhaltens.
- cancellationToken
- CancellationToken
Optional CancellationToken zur Weitergabe von Benachrichtigungen, dass der Vorgang abgebrochen werden soll.
Gibt zurück
Das Dokument, das dem key
entspricht.
Ausnahmen
Wird ausgelöst, wenn ein Fehler vom Suchdienst zurückgegeben wird.
Hinweise
Die GetDocument<T>(String, GetDocumentOptions, CancellationToken) Methoden und GetDocumentAsync<T>(String, GetDocumentOptions, CancellationToken) unterstützen die Zuordnung von Azure Search-Feldtypen zu .NET-Typen über den Typparameter T
. Beachten Sie, dass alle Suchfeldtypen außer Sammlungen nullable sind. Daher wird empfohlen, NULLable-Typen für die Eigenschaften von zu T
verwenden. Die Typzuordnung sieht wie folgt aus:
Suchfeldtyp | .NET-Typ | ||||||
---|---|---|---|---|---|---|---|
Edm.String | String (Zeichenfolge in C# und F#) | ||||||
Edm.Boolean | Nullable<T> (bool? in C#,\ Nullable<bool> in F#) | ||||||
Edm.Double | Nullable<T> (double? in C#, Nullable<float> in F#) | ||||||
Edm.Int32 | Nullable<T> (int? in C#, Nullable<int> in F#) | ||||||
Edm.Int64 | Nullable<T> (long? in C#, Nullable<int64> in F#) | ||||||
Edm.DateTimeOffset | Nullable<T> (DateTimeOffset? in C#, Nullable< DateTimeOffset> in F#) oder System.Nullable<System.DateTime> (DateTime? in C#, Nullable<DateTime> in F#). Beide Typen funktionieren, obwohl die Verwendung von DateTimeOffset empfohlen wird. Beim Abrufen von Dokumenten werden DateTime-Werte immer in UTC angegeben. Beim Indizieren von Dokumenten werden DateTime-Werte wie folgt interpretiert:
| ||||||
Edm.GeographyPoint | Azure.Core.GeoJson.GeoPoint | ||||||
Edm.ComplexType | Jeder Typ, der aus den JSON-Objekten im komplexen Feld deserialisiert werden kann. Dies kann ein Werttyp oder ein Verweistyp sein. Es wird jedoch empfohlen, einen Verweistyp zu verwenden, da komplexe Felder in Azure Cognitive Search nullable sind. | ||||||
Collection(Edm.String) | IEnumerable<T>(seq-Zeichenfolge<> in F#) | ||||||
Collection(Edm.Boolean) | IEnumerable<T> (seq<bool> in F#) | ||||||
Collection(Edm.Double) | IEnumerable<T> (seq<float> in F#) | ||||||
Sammlung(Edm.Int32) | IEnumerable<T> (seq<int> in F#) | ||||||
Sammlung(Edm.Int64) | IEnumerable<T> (seq<int64> in F#) | ||||||
Collection(Edm.DateTimeOffset) | IEnumerable<T> oder IEnumerable<T> (seq<DateTimeOffset> oder seq<DateTime> in F#). Beide Typen funktionieren, obwohl wir empfehlen, zu verwenden IEnumerable<T>. Weitere Informationen finden Sie in den Notizen oben auf Edm.DateTimeOffset. | ||||||
Collection(Edm.GeographyPoint) | Sequenz von Azure.Core.GeoJson.GeoPoint (seq<GeoPoint> in F#) | ||||||
Collection(Edm.ComplexType) | IEnumerable<T> (seq< T> in F#), wobei T ein beliebiger Typ ist, der aus den JSON-Objekten im feld der komplexen Auflistung deserialisiert werden kann. Dies kann ein Werttyp oder ein Verweistyp sein. |
T
verwenden, und wir versuchen, JSON-Typen in der Antwortnutzlast .NET-Typen zuzuordnen. Diese Zuordnung hat nicht den Vorteil präziser Typinformationen aus dem Index, sodass die Zuordnung nicht immer richtig ist. Beachten Sie insbesondere die folgenden Fälle:- Jeder numerische Wert ohne Dezimalpunkt wird in ein Int32 (int in C#, int32 in F#) deserialisiert, wenn er konvertiert werden kann, oder ein Int64 (long in C#, int64 in F#).
- Spezielle Gleitkommawerte mit doppelter Genauigkeit wie NaN und Infinity werden als Typ String anstelle Doublevon deserialisiert, auch wenn sie sich in Arrays mit regulären Gleitkommawerten befinden.
- Jedes Edm.DateTimeOffset-Feld wird als DateTimeOffsetdeserialisiert, nicht DateTime.
- Jedes leere JSON-Array wird als Array von Object (object[] in C#, obj[] in F#) deserialisiert.
- Komplexe Felder werden rekursiv in Instanzen vom Typ SearchDocumentdeserialisiert. Auf ähnliche Weise werden komplexe Sammlungsfelder in Arrays solcher Instanzen deserialisiert.
Gilt für:
Azure SDK for .NET