Partilhar via


SearchClient.GetDocumentAsync<T> Método

Definição

Recupera um documento de Azure Cognitive Search. Isso é útil quando um usuário clica em um resultado de pesquisa específico e você deseja pesquisar detalhes específicos sobre esse documento. Você pode obter apenas um documento por vez. Use Pesquisar para obter vários documentos em uma única solicitação. Procurar 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

O tipo .NET que mapeia para o esquema de índice. Instâncias desse tipo podem ser recuperadas como documentos do índice.

Parâmetros

key
String

Obrigatórios. Um valor de cadeia de caracteres que identifica exclusivamente cada documento no índice. Às vezes, a chave é chamada de ID de documento. Consulte Regras de nomenclatura para as regras para construir chaves de documento válidas.

options
GetDocumentOptions

Opções para personalizar o comportamento da operação.

cancellationToken
CancellationToken

Opcional CancellationToken para propagar notificações de que a operação deve ser cancelada.

Retornos

O documento correspondente ao key.

Exceções

Gerado quando uma falha é retornada pelo Serviço de Pesquisa.

Comentários

Os GetDocument<T>(String, GetDocumentOptions, CancellationToken) métodos e GetDocumentAsync<T>(String, GetDocumentOptions, CancellationToken) dão suporte ao mapeamento de tipos de campo do Azure Search para tipos .NET por meio do parâmetro Tde tipo . Observe que todos os tipos de campo de pesquisa, exceto coleções, são anuláveis, portanto, recomendamos usar tipos anuláveis para as propriedades de T. O mapeamento de tipo é o seguinte:

Tipo de campo de pesquisaTipo .NET
Edm.StringString (cadeia de caracteres em C# e F#)
Edm.BooleanNullable<T>(bool? em C#,\ Bool> anulável<em F#)
Edm.DoubleNullable<T>(duplo? em C#, float anulável<> em F#)
Edm.Int32Nullable<T>(int? em C#, int> anulável<em F#)
Edm.Int64Nullable<T> (long? in C#, Nullable<int64> in F#)
Edm.DateTimeOffsetNullable<T>(DateTimeOffset? em C#, Anulável< DateTimeOffset> em F#) ou System.Nullable<System.DateTime> (DateTime? em C#, DateTime> anulável<em F#). Ambos os tipos funcionam, embora seja recomendável usar DateTimeOffset. Ao recuperar documentos, os valores datetime sempre estarão em UTC. Ao indexar documentos, os valores datetime são interpretados da seguinte maneira:
DateTime UTCEnviado como está para o índice.
Local DateTimeConvertido em UTC antes de ser enviado para o índice.
DateTime com fuso horário não especificadoSupõe-se que seja UTC e enviado como está para o índice.
Edm.GeographyPoint Azure.Core.GeoJson.GeoPoint
Edm.ComplexType Qualquer tipo que possa ser desserializado dos objetos JSON no campo complexo. Isso pode ser um tipo de valor ou um tipo de referência, mas recomendamos usar um tipo de referência, pois campos complexos são anuláveis em Azure Cognitive Search.
Collection(Edm.String)IEnumerable<T>(cadeia de caracteres> seq<em F#)
Collection(Edm.Boolean)IEnumerable<T> (seq<bool> em F#)
Collection(Edm.Double)IEnumerable<T> (seq<float> em F#)
Collection(Edm.Int32)IEnumerable<T> (seq<int> em F#)
Collection(Edm.Int64)IEnumerable<T> (seq<int64> em F#)
Collection(Edm.DateTimeOffset)IEnumerable<T> ou IEnumerable<T> (seq<DateTimeOffset> ou seq<DateTime> em F#). Ambos os tipos funcionam, embora seja recomendável usar IEnumerable<T>. Consulte as anotações acima em Edm.DateTimeOffset para obter detalhes.
Collection(Edm.GeographyPoint)sequência de Azure.Core.GeoJson.GeoPoint (seq<GeoPoint> em F#)
Collection(Edm.ComplexType)IEnumerable<T> (seq< T> em F#) em que T é qualquer tipo que pode ser desserializado dos objetos JSON no campo de coleção complexa. Pode ser um tipo de valor ou um tipo de referência.
Você também pode usar a dinâmica SearchDocument como sua T e tentaremos mapear tipos JSON na carga de resposta para tipos .NET. Esse mapeamento não tem o benefício de informações precisas de tipo do índice, portanto, o mapeamento nem sempre está correto. Em particular, esteja ciente dos seguintes casos:
  • Qualquer valor numérico sem um ponto decimal será desserializado para um Int32 (int em C#, int32 em F#) se puder ser convertido ou um Int64 (long em C#, int64 em F#) caso contrário.
  • Valores especiais de ponto flutuante de precisão dupla, como NaN e Infinity, serão desserializados como tipo String em vez de Double, mesmo que estejam em matrizes com valores de ponto flutuante regulares.
  • Qualquer campo Edm.DateTimeOffset será desserializado como um DateTimeOffset, não DateTime.
  • Qualquer matriz JSON vazia será desserializada como uma matriz de Object (object[] em C#, obj[] em F#).
  • Campos complexos serão desserializados recursivamente em instâncias do tipo SearchDocument. Da mesma forma, campos de coleção complexos serão desserializados em matrizes dessas instâncias.

Aplica-se a