Sintassi di $select OData in Ricerca di intelligenza artificiale di Azure

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:

Il parametro $select è disponibile in due forme:

  1. Una singola stella (*), che indica che tutti i campi recuperabili devono essere restituiti o
  2. 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, Citye 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 HotelIdcampi , HotelNamee 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": "Secret Point Motel",
  "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": "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
    }
  ]
}

Passaggi successivi