OData-Syntax von „$select“ in Azure KI Search

In Azure KI Search gibt der Parameter$select an, welche Felder in die Suchergebnisse aufgenommen werden sollen. Dieser Artikel beschreibt die OData-Syntax von $select und enthält Beispiele.

Feldpfadkonstruktion und -konstanten werden in der OData-Sprachübersicht in Azure KI Search beschrieben. Weitere Informationen zur Zusammensetzung von Suchergebnissen finden Sie unter Arbeiten mit Suchergebnissen in Azure KI Search.

Syntax

Der Parameter $select bestimmt, welche Felder für jedes Dokument im Abfrageresultset zurückgegeben werden. Die folgende erweiterte Backus-Naur-Form (EBNF) definiert die Grammatik des Parameters $select:

select_expression ::= '*' | field_path(',' field_path)*

field_path ::= identifier('/'identifier)*

Ein interaktives Syntaxdiagramm ist ebenfalls verfügbar:

Hinweis

Die vollständige EBNF finden Sie in der Referenz zur OData-Ausdruckssyntax für Azure KI Search.

Der Parameter $select ist in zwei Formen vorhanden:

  1. Ein einzelnes Sternchen (*) gibt an, dass alle abrufbaren Felder zurückgegeben werden sollen.
  2. Eine durch Trennzeichen getrennte Liste von Feldpfaden identifiziert, welche Felder zurückgegeben werden sollen.

Wenn Sie die zweite Form verwenden, können Sie nur abrufbare Felder in der Liste angeben.

Wenn Sie ein komplexes Feld auflisten, ohne seine Teilfelder explizit anzugeben, werden alle abrufbaren Teilfelder in die Ergebnismenge der Abfrage aufgenommen. Nehmen Sie zum Beispiel an, Ihr Index hat ein AddressFeld mitStreet, City, undCountry Unterfelder, die alle abrufbar sind. Wenn SieAddress in $selectangeben, enthalten die Abfrageergebnisse alle drei Teilfelder.

Beispiele

Nehmen Sie die FelderHotelId, HotelName, und Rating die oberste Ebene in die Ergebnisse auf, und nehmen Sie das CityTeilfeld von aufAddress:

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

Ein Beispielergebnis könnte wie folgt aussehen:

{
  "HotelId": "1",
  "HotelName": "Secret Point Motel",
  "Rating": 4,
  "Address": {
    "City": "New York"
  }
}

Schließen Sie das Feld der HotelNameobersten Ebene in die Ergebnisse ein. Schließen Sie alle Teilfelder von Address. Schließen Sie dieTypeundBaseRate Unterfelder jedes Objekts in der RoomsSammlung ein:

    $select=HotelName, Address, Rooms/Type, Rooms/BaseRate

Ein Beispielergebnis könnte wie folgt aussehen:

{
  "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ächste Schritte