Sintaxe de $select do 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 de $select e fornece exemplos.
As constantes e a construção de 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 de resultados da pesquisa, confira Como trabalhar com os resultados da 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 (Formulário Backus-Naur Estendido) define a gramática dos parâmetros $select:
select_expression ::= '*' | field_path(',' field_path)*
field_path ::= identifier('/'identifier)*
Um diagrama de sintaxe interativa também está disponível:
Observação
Confira Referência de sintaxe de expressão OData para Azure AI Search para ver a EBNF completa.
O parâmetro $select tem duas formas:
- Uma única estrela (
*
), indicando que todos os campos recuperáveis devem ser retornados 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 o índice tenha um campo Address
com subcampos Street
, City
e Country
que são todos recuperáveis. Se você especificar Address
em $select, os resultados da consulta incluirão todos os três subcampos.
Exemplos
Inclua os campos HotelId
, HotelName
e Rating
de nível superior nos resultados, bem como o subcampo City
de Address
:
$select=HotelId, HotelName, Rating, Address/City
Um exemplo de resultado teria essa aparência:
{
"HotelId": "1",
"HotelName": "Stay-Kay City Hotel",
"Rating": 4,
"Address": {
"City": "New York"
}
}
Inclua o campo HotelName
de nível superior nos resultados. Inclua todos os subcampos de Address
. Inclua os subcampos Type
e BaseRate
de cada objeto na coleção Rooms
:
$select=HotelName, Address, Rooms/Type, Rooms/BaseRate
Um exemplo de resultado teria essa aparência:
{
"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
}
]
}