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:
- Ein einzelnes Sternchen (
*
) gibt an, dass alle abrufbaren Felder zurückgegeben werden sollen. - 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 Address
Feld 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 City
Teilfeld 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 HotelName
obersten Ebene in die Ergebnisse ein. Schließen Sie alle Teilfelder von Address
. Schließen Sie dieType
undBaseRate
Unterfelder jedes Objekts in der Rooms
Sammlung 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
}
]
}