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:

  1. Uma única estrela (*), indicando que todos os campos recuperáveis devem ser retornados ou
  2. 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
    }
  ]
}

Próximas etapas