Sintaxe $select OData no Azure AI Search
No Azure AI Search, o parâmetro $select especifica quais campos incluir nos resultados da pesquisa. Este artigo descreve a sintaxe OData do $select e fornece exemplos.
A construção e as constantes do caminho de campo são descritas na visão geral da linguagem OData no Azure AI Search. Para obter mais informações sobre a composição dos resultados da pesquisa, consulte Como trabalhar com resultados de pesquisa no Azure AI Search.
Sintaxe
O parâmetro $select determina quais campos para cada documento são retornados no conjunto de resultados da consulta. O seguinte EBNF (Extended Backus-Naur Form) define a gramática para o parâmetro $select :
select_expression ::= '*' | field_path(',' field_path)*
field_path ::= identifier('/'identifier)*
Um diagrama de sintaxe interativo também está disponível:
Nota
Consulte Referência de sintaxe de expressão OData para Azure AI Search para obter o EBNF completo.
O parâmetro $select apresenta-se de duas formas:
- Uma única estrela (
*
), indicando que todos os campos recuperáveis devem ser devolvidos, ou - Uma lista separada por vírgulas de caminhos de campo, identificando quais campos devem ser retornados.
Ao usar o segundo formulário, você só pode especificar campos recuperáveis na lista.
Se você listar um campo complexo sem especificar seus subcampos explicitamente, todos os subcampos recuperáveis serão incluídos no conjunto de resultados da consulta. Por exemplo, suponha que seu índice tenha um Address
campo com Street
, City
e Country
subcampos que são todos recuperáveis. Se você especificar Address
em $select, os resultados da consulta incluirão os três subcampos.
Exemplos
Inclua os HotelId
campos , HotelName
e de Rating
nível superior nos resultados e inclua o City
subcampo de Address
:
$select=HotelId, HotelName, Rating, Address/City
Um exemplo de resultado pode ser parecido com este:
{
"HotelId": "1",
"HotelName": "Stay-Kay City Hotel",
"Rating": 4,
"Address": {
"City": "New York"
}
}
Inclua o HotelName
campo de nível superior nos resultados. Inclua todos os subcampos de Address
. Inclua os Type
e BaseRate
subcampos de cada objeto na Rooms
coleção:
$select=HotelName, Address, Rooms/Type, Rooms/BaseRate
Um exemplo de resultado pode ser parecido com este:
{
"HotelName": "Stay-Kay City Hotel",
"Rating": 4,
"Address": {
"StreetAddress": "677 5th Ave",
"City": "New York",
"StateProvince": "NY",
"Country": "USA",
"PostalCode": "10022"
},
"Rooms": [
{
"Type": "Budget Room",
"BaseRate": 9.69
},
{
"Type": "Budget Room",
"BaseRate": 8.09
}
]
}