OData $select syntaxis in Azure AI Search

In Azure AI Search geeft de $select parameter op welke velden moeten worden opgenomen in zoekresultaten. In dit artikel worden de OData-syntaxis van $select beschreven en vindt u voorbeelden.

Bouw van veldpaden en constanten worden beschreven in het overzicht van de OData-taal in Azure AI Search. Zie Hoe u kunt werken met zoekresultaten in Azure AI Search voor meer informatie over de samenstelling van zoekresultaten.

Syntaxis

De parameter $select bepaalt welke velden voor elk document worden geretourneerd in de queryresultatenset. Met het volgende EBNF-formulier (Extended Backus-Naur Form) wordt de grammatica voor de parameter $select gedefinieerd:

select_expression ::= '*' | field_path(',' field_path)*

field_path ::= identifier('/'identifier)*

Er is ook een interactief syntaxisdiagram beschikbaar:

De parameter $select heeft twee vormen:

  1. Eén ster (*), waarmee wordt aangegeven dat alle ophaalbare velden moeten worden geretourneerd, of
  2. Een door komma's gescheiden lijst met veldpaden waarmee wordt opgegeven welke velden moeten worden geretourneerd.

Wanneer u het tweede formulier gebruikt, kunt u alleen op te halen velden in de lijst opgeven.

Als u een complex veld opgeeft zonder expliciet de subvelden op te geven, worden alle ophaalbare subvelden opgenomen in de resultatenset van de query. Stel dat uw index een Address veld heeft met Street, Cityen Country subvelden die allemaal kunnen worden opgehaald. Als u opgeeft Address in $select, bevatten de queryresultaten alle drie de subvelden.

Voorbeelden

Neem de HotelIdvelden en HotelNameRating velden op het hoogste niveau op in de resultaten en neem het City subveld vanAddress:

    $select=HotelId, HotelName, Rating, Address/City

Een voorbeeldresultaat kan er als volgt uitzien:

{
  "HotelId": "1",
  "HotelName": "Secret Point Motel",
  "Rating": 4,
  "Address": {
    "City": "New York"
  }
}

Neem het veld op het HotelName hoogste niveau op in de resultaten. Alle subvelden van Address. Neem de Type en BaseRate subvelden van elk object in de Rooms verzameling op:

    $select=HotelName, Address, Rooms/Type, Rooms/BaseRate

Een voorbeeldresultaat kan er als volgt uitzien:

{
  "HotelName": "Secret Point Motel",
  "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
    }
  ]
}

Volgende stappen