OData-$select syntax i Azure AI Search
I Azure AI Search anger parametern $select vilka fält som ska inkluderas i sökresultaten. Den här artikeln beskriver OData-syntaxen för $select och innehåller exempel.
Konstruktion och konstanter för fältvägar beskrivs i översikten över OData-språket i Azure AI Search. Mer information om sökresultatsammansättning finns i Arbeta med sökresultat i Azure AI Search.
Syntax
Parametern $select avgör vilka fält för varje dokument som returneras i frågeresultatuppsättningen. Följande EBNF (Extended Backus-Naur Form) definierar grammatiken för parametern $select :
select_expression ::= '*' | field_path(',' field_path)*
field_path ::= identifier('/'identifier)*
Ett interaktivt syntaxdiagram är också tillgängligt:
Kommentar
Se syntaxreferens för OData-uttryck för Azure AI Search för hela EBNF.
Parametern $select finns i två former:
- En enda stjärna (
*
), som anger att alla hämtningsbara fält ska returneras, eller - En kommaavgränsad lista över fältsökvägar som identifierar vilka fält som ska returneras.
När du använder det andra formuläret kan du bara ange hämtningsbara fält i listan.
Om du listar ett komplext fält utan att uttryckligen ange dess underfält inkluderas alla hämtningsbara underfält i frågeresultatuppsättningen. Anta till exempel att ditt index har ett Address
fält med Street
, City
och Country
underfält som alla kan hämtas. Om du anger Address
i $select innehåller frågeresultatet alla tre underfälten.
Exempel
Inkludera fälten HotelId
, HotelName
och Rating
den översta nivån i resultaten och inkludera City
underfältet Address
i :
$select=HotelId, HotelName, Rating, Address/City
Ett exempelresultat kan se ut så här:
{
"HotelId": "1",
"HotelName": "Stay-Kay City Hotel",
"Rating": 4,
"Address": {
"City": "New York"
}
}
Inkludera fältet på den HotelName
översta nivån i resultatet. Ta med alla underfält i Address
. Inkludera underfälten Type
och BaseRate
för varje objekt i Rooms
samlingen:
$select=HotelName, Address, Rooms/Type, Rooms/BaseRate
Ett exempelresultat kan se ut så här:
{
"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
}
]
}