SearchClient.GetDocumentAsync<T> Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 T
de 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 pesquisa | Tipo .NET | ||||||
---|---|---|---|---|---|---|---|
Edm.String | String (cadeia de caracteres em C# e F#) | ||||||
Edm.Boolean | Nullable<T>(bool? em C#,\ Bool> anulável<em F#) | ||||||
Edm.Double | Nullable<T>(duplo? em C#, float anulável<> em F#) | ||||||
Edm.Int32 | Nullable<T>(int? em C#, int> anulável<em F#) | ||||||
Edm.Int64 | Nullable<T> (long? in C#, Nullable<int64> in F#) | ||||||
Edm.DateTimeOffset | Nullable<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:
| ||||||
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. |
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
Azure SDK for .NET