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:

Parametern $select finns i två former:

  1. En enda stjärna (*), som anger att alla hämtningsbara fält ska returneras, eller
  2. 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, Cityoch 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, HotelNameoch Rating den översta nivån i resultaten och inkludera City underfältet Addressi :

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

Ett exempelresultat kan se ut så här:

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

Nästa steg