Freigeben über


SearchClient.GetDocumentAsync<T> Methode

Definition

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

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 Tverwenden. Die Typzuordnung sieht wie folgt aus:

Suchfeldtyp.NET-Typ
Edm.StringString (Zeichenfolge in C# und F#)
Edm.BooleanNullable<T> (bool? in C#,\ Nullable<bool> in F#)
Edm.DoubleNullable<T> (double? in C#, Nullable<float> in F#)
Edm.Int32Nullable<T> (int? in C#, Nullable<int> in F#)
Edm.Int64Nullable<T> (long? in C#, Nullable<int64> in F#)
Edm.DateTimeOffsetNullable<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:
Die DateTime-Angabe (UTC).Wird unverändert an den Index gesendet.
Lokale DateTimeWird vor dem Senden an den Index in UTC konvertiert.
DateTime mit nicht angegebener ZeitzoneAngenommen, dass sie UTC sind und unverändert an den Index gesendet werden.
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.
Sie können auch die dynamische SearchDocument als Ihre 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: