Sintassi di $select OData in Azure AI Search
In Ricerca di intelligenza artificiale di Azure il parametro $select specifica i campi da includere nei risultati della ricerca. Questo articolo descrive la sintassi OData di $select e fornisce esempi.
La costruzione e le costanti dei percorsi di campo sono descritte nella panoramica del linguaggio OData in Ricerca di intelligenza artificiale di Azure. Per altre informazioni sulla composizione dei risultati della ricerca, vedere Come usare i risultati della ricerca in Ricerca di intelligenza artificiale di Azure.
Sintassi
Il parametro $select determina quali campi per ogni documento vengono restituiti nel set di risultati della query. Il seguente EBNF (Extended Backus-Naur Form) definisce la grammatica per il parametro $select :
select_expression ::= '*' | field_path(',' field_path)*
field_path ::= identifier('/'identifier)*
È disponibile anche un diagramma di sintassi interattivo:
Nota
Vedere Informazioni di riferimento sulla sintassi delle espressioni OData per Azure AI Search per l'EBNF completo.
Il parametro $select è disponibile in due forme:
- Una singola stella (
*
), che indica che tutti i campi recuperabili devono essere restituiti o - Elenco delimitato da virgole di percorsi di campo che identificano i campi da restituire.
Quando si usa il secondo modulo, è possibile specificare solo i campi recuperabili nell'elenco.
Se si elenca un campo complesso senza specificare in modo esplicito i relativi sottocampi, tutti i sottocampi recuperabili verranno inclusi nel set di risultati della query. Si supponga, ad esempio, che l'indice abbia un Address
campo con Street
, City
e Country
campi secondari che sono tutti recuperabili. Se si specifica Address
in $select, i risultati della query includeranno tutti e tre i sottocampi.
Esempi
Includere i HotelId
campi , HotelName
e Rating
di primo livello nei risultati e includere il City
sottocampo di Address
:
$select=HotelId, HotelName, Rating, Address/City
Un risultato di esempio potrebbe essere simile al seguente:
{
"HotelId": "1",
"HotelName": "Stay-Kay City Hotel",
"Rating": 4,
"Address": {
"City": "New York"
}
}
Includere il HotelName
campo di primo livello nei risultati. Includere tutti i sottocampi di Address
. Includere i Type
campi secondari e BaseRate
di ogni oggetto nell'insieme Rooms
:
$select=HotelName, Address, Rooms/Type, Rooms/BaseRate
Un risultato di esempio potrebbe essere simile al seguente:
{
"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
}
]
}