SearchClient.GetDocumentAsync<T> Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 T
type . 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úsqueda | Tipo de .NET | ||||||
---|---|---|---|---|---|---|---|
Edm.String | String (cadena en C# y F#) | ||||||
Edm.Boolean | Nullable<T> (bool? en C#,\ Nullable<bool> en F#) | ||||||
Edm.Double | Nullable<T> (double? en C#, float que acepta<valores NULL> en F#) | ||||||
Edm.Int32 | Nullable<T>(int? en C#, int> que acepta<valores NULL en F#) | ||||||
Edm.Int64 | Nullable<T> (long? en C#, Nullable<int64> en F#) | ||||||
Edm.DateTimeOffset | Nullable<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:
| ||||||
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. |
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
Azure SDK for .NET