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:
Notitie
Zie naslaginformatie over de syntaxis van de OData-expressie voor Azure AI Search voor het volledige EBNF.
De parameter $select heeft twee vormen:
- Eén ster (
*
), waarmee wordt aangegeven dat alle ophaalbare velden moeten worden geretourneerd, of - 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
, City
en Country
subvelden die allemaal kunnen worden opgehaald. Als u opgeeft Address
in $select, bevatten de queryresultaten alle drie de subvelden.
Voorbeelden
Neem de HotelId
velden en HotelName
Rating
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
}
]
}