Partager via


SearchClient.GetDocumentAsync<T> Méthode

Définition

Récupère un document à partir de Recherche cognitive Azure. Cela est utile quand un utilisateur clique sur un résultat de recherche en particulier et que vous voulez rechercher des détails spécifiques sur ce document. Vous ne pouvez obtenir qu'un seul document à la fois. Utilisez Search pour obtenir plusieurs documents dans une requête unique. Recherche de document

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

Paramètres de type

T

Type .NET mappé au schéma d’index. Les instances de ce type peuvent être récupérées sous forme de documents à partir de l’index.

Paramètres

key
String

Obligatoire. Valeur de chaîne qui identifie de manière unique chaque document dans l’index. La clé est parfois appelée ID de document. Consultez Règles de nommage pour connaître les règles de construction de clés de document valides.

options
GetDocumentOptions

Options permettant de personnaliser le comportement de l’opération.

cancellationToken
CancellationToken

Facultatif CancellationToken pour propager des notifications indiquant que l’opération doit être annulée.

Retours

Document correspondant à .key

Exceptions

Levée lorsqu’un échec est retourné par le service de recherche.

Remarques

Les GetDocument<T>(String, GetDocumentOptions, CancellationToken) méthodes et GetDocumentAsync<T>(String, GetDocumentOptions, CancellationToken) prennent en charge le mappage des types de champs Recherche Azure aux types .NET via le paramètre Tde type . Notez que tous les types de champs de recherche à l’exception des collections sont nullables. Nous vous recommandons donc d’utiliser des types nullables pour les propriétés de T. Le mappage de type est le suivant :

Type de champ de rechercheType .NET
Edm.StringString (chaîne en C# et F#)
Edm.BooleanNullable<T>(bool? en C#,\ Bool> nullable<en F#)
Edm.DoubleNullable<T>(double ? en C#, float> nullable<en F#)
Edm.Int32Nullable<T>(int? in C#, Int> Nullable<en F#)
Edm.Int64Nullable<T> (long ? en C#, Nullable<int64> en F#)
Edm.DateTimeOffsetNullable<T>(DateTimeOffset ? en C#, Nullable< DateTimeOffset> en F#) ou System.Nullable<System.DateTime> (DateTime ? en C#, DateTime> nullable<en F#). Les deux types fonctionnent, bien que nous vous recommandons d’utiliser DateTimeOffset. Lors de la récupération de documents, les valeurs DateTime sont toujours en UTC. Lors de l’indexation de documents, les valeurs DateTime sont interprétées comme suit :
DateTime UTCEnvoyé tel qu’il est à l’index.
Local DateTimeConverti en UTC avant d’être envoyé à l’index.
DateTime avec fuseau horaire non spécifiéOn suppose qu’il s’agit d’UTC et qu’il est envoyé tel quelle à l’index.
Edm.GeographyPoint Azure.Core.GeoJson.GeoPoint
Edm.ComplexType Tout type qui peut être désérialisé à partir des objets JSON dans le champ complexe. Il peut s’agir d’un type valeur ou d’un type référence, mais nous vous recommandons d’utiliser un type référence, car les champs complexes peuvent être nullables dans Recherche cognitive Azure.
Collection(Edm.String)IEnumerable<T>(chaîne> seq<en F#)
Collection(Edm.Boolean)IEnumerable<T> (seq<bool> en F#)
Collection(Edm.Double)IEnumerable<T> (seq<float> en F#)
Collection(Edm.Int32)IEnumerable<T> (seq<int> en F#)
Collection(Edm.Int64)IEnumerable<T> (seq<int64> en F#)
Collection(Edm.DateTimeOffset)IEnumerable<T> ou IEnumerable<T> (seq<DateTimeOffset> ou seq<DateTime> en F#). Les deux types fonctionnent, bien que nous vous recommandons d’utiliser IEnumerable<T>. Pour plus d’informations, consultez les notes ci-dessus sur Edm.DateTimeOffset.
Collection(Edm.GeographyPoint)séquence d’Azure.Core.GeoJson.GeoPoint (seq<GeoPoint> en F#)
Collection(Edm.ComplexType)IEnumerable<T> (seq)< T> en F#), où T est tout type qui peut être désérialisé à partir des objets JSON dans le champ de collection complexe. Il peut s’agir d’un type valeur ou d’un type de référence.
Vous pouvez également utiliser le dynamique SearchDocument comme votre T et nous tenterons de mapper des types JSON dans la charge utile de réponse aux types .NET. Ce mappage n’a pas l’avantage d’informations de type précises de l’index, de sorte que le mappage n’est pas toujours correct. En particulier, tenez compte des cas suivants :
  • Toute valeur numérique sans virgule décimale sera désérialisée en ( Int32 int en C#, int32 en F#) si elle peut être convertie ou un Int64 (long en C#, int64 en F#) dans le cas contraire.
  • Les valeurs à virgule flottante à double précision spéciales telles que NaN et Infinity seront désérialisées en tant que type String plutôt que Double, même si elles se trouvent dans des tableaux avec des valeurs à virgule flottante régulières.
  • Tout champ Edm.DateTimeOffset sera désérialisé en tant que DateTimeOffset, et non DateTime.
  • Tout tableau JSON vide sera désérialisé en tant que tableau de Object (object[] en C#, obj[] en F#).
  • Les champs complexes seront désérialisés de manière récursive en instances de type SearchDocument. De même, les champs de collection complexes seront désérialisés dans des tableaux de telles instances.

S’applique à