Compartir a través de


SearchClient.GetDocumentAsync<T> Método

Definición

Recupera un documento de Azure Cognitive Search. Esto resulta útil cuando un usuario hace clic en un resultado de búsqueda específico y desea buscar detalles específicos acerca de ese documento. Solamente se puede obtener un documento de cada vez. Utilice Búsqueda para obtener varios documentos en una única solicitud. Buscar documento

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

Parámetros de tipo

T

Tipo de .NET que se asigna al esquema de índice. Las instancias de este tipo se pueden recuperar como documentos del índice.

Parámetros

key
String

Necesario. Valor de cadena que identifica de forma única cada documento del índice. La clave se conoce a veces como un identificador de documento. Consulte Reglas de nomenclatura para las reglas para construir claves de documento válidas.

options
GetDocumentOptions

Opciones para personalizar el comportamiento de la operación.

cancellationToken
CancellationToken

Opcional CancellationToken para propagar notificaciones que se deben cancelar en la operación.

Devoluciones

Documento correspondiente a key.

Excepciones

Se produce cuando el servicio de búsqueda devuelve un error.

Comentarios

Los GetDocument<T>(String, GetDocumentOptions, CancellationToken) métodos y GetDocumentAsync<T>(String, GetDocumentOptions, CancellationToken) admiten la asignación de tipos de campo de Azure Search a tipos .NET mediante el parámetro Ttype . Tenga en cuenta que todos los tipos de campo de búsqueda excepto las colecciones aceptan valores NULL, por lo que se recomienda usar tipos que aceptan valores NULL para las propiedades de T. La asignación de tipos es la siguiente:

Tipo de campo de búsquedaTipo de .NET
Edm.StringString (cadena en C# y F#)
Edm.BooleanNullable<T> (bool? en C#,\ Nullable<bool> en F#)
Edm.DoubleNullable<T> (double? en C#, float que acepta<valores NULL> en F#)
Edm.Int32Nullable<T>(int? en C#, int> que acepta<valores NULL en F#)
Edm.Int64Nullable<T> (long? en C#, Nullable<int64> en F#)
Edm.DateTimeOffsetNullable<T> (DateTimeOffset? en C#, Que acepta valores< NULL DateTimeOffset> en F#) o System.Nullable<System.DateTime> (DateTime? en C#, Nullable<DateTime> en F#). Ambos tipos funcionan, aunque se recomienda usar DateTimeOffset. Al recuperar documentos, los valores DateTime siempre estarán en UTC. Al indexar documentos, los valores DateTime se interpretan de la siguiente manera:
UTC DateTimeSe envía tal cual al índice.
Fecha y hora localSe convierte en UTC antes de enviarse al índice.
DateTime con zona horaria no especificadaSe supone que es UTC y se envía tal cual al índice.
Edm.GeographyPoint Azure.Core.GeoJson.GeoPoint
Edm.ComplexType Cualquier tipo que se pueda deserializar desde los objetos JSON en el campo complejo. Puede ser un tipo de valor o un tipo de referencia, pero se recomienda usar un tipo de referencia, ya que los campos complejos admiten valores NULL en Azure Cognitive Search.
Collection(Edm.String)IEnumerable<T>(cadena 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> o IEnumerable<T> (seq<DateTimeOffset> o seq<DateTime> en F#). Ambos tipos funcionan, aunque se recomienda usar IEnumerable<T>. Consulte las notas anteriores en Edm.DateTimeOffset para obtener más información.
Collection(Edm.GeographyPoint)secuencia de Azure.Core.GeoJson.GeoPoint (seq<GeoPoint> en F#)
Collection(Edm.ComplexType)IEnumerable<T> (seq< T> en F#) donde T es cualquier tipo que se puede deserializar desde los objetos JSON en el campo de colección compleja. Puede ser un tipo de valor o un tipo de referencia.
También puede usar la dinámica SearchDocument como su T y intentaremos asignar tipos JSON en la carga de respuesta a los tipos de .NET. Esta asignación no tiene la ventaja de información de tipo precisa del índice, por lo que la asignación no siempre es correcta. En concreto, tenga en cuenta los siguientes casos:
  • Cualquier valor numérico sin un separador decimal se deserializará en un Int32 (int en C#, int32 en F#) si se puede convertir o ( Int64 long en C#, int64 en F#) de lo contrario.
  • Los valores de punto flotante de precisión doble especiales, como NaN e Infinity, se deserializarán como tipo String en lugar Doublede , aunque estén en matrices con valores de punto flotante normales.
  • Cualquier campo Edm.DateTimeOffset se deserializará como DateTimeOffset, no DateTime.
  • Cualquier matriz JSON vacía se deserializará como una matriz de Object (object[] en C#, obj[] en F#).
  • Los campos complejos se deserializarán recursivamente en instancias de tipo SearchDocument. Del mismo modo, los campos de colección complejos se deserializarán en matrices de estas instancias.

Se aplica a