Syntaxe OData $select dans Azure AI Search
Dans Azure AI Search, le paramètre $select spécifie les champs à inclure dans les résultats de recherche. Cet article décrit la syntaxe OData de $select et fournit des exemples.
La construction et les constantes du chemin d’accès aux champs sont décrites dans la vue d’ensemble du langage OData dans Azure AI Search. Pour plus d’informations sur la composition des résultats de la recherche, consultez Comment utiliser les résultats de la recherche dans Azure AI Search.
Syntaxe
Le paramètre $select détermine quels champs de chaque document sont renvoyés dans le jeu de résultats de la requête. L’extension EBNF suivante (Extended Backus-Naur Form) définit la grammaire du paramètre $select :
select_expression ::= '*' | field_path(',' field_path)*
field_path ::= identifier('/'identifier)*
Un diagramme de syntaxe interactif est également disponible :
Remarque
Consultez Informations de référence sur la syntaxe d’expression OData pour Azure AI Recherche pour avoir le format EBNF complet.
Le paramètre $select se présente sous deux formes :
- Une seule étoile (
*
), indiquant que tous les champs récupérables doivent être renvoyés, ou - Une liste de chemins d’accès aux champs séparés par des virgules identifiant les champs à renvoyer.
Lorsque vous utilisez la deuxième forme, vous pouvez uniquement spécifier les champs récupérables dans la liste.
Si vous répertoriez un champ complexe sans spécifier explicitement ses sous-champs, tous les sous-champs récupérables figureront dans le jeu de résultats de la requête. Par exemple, supposons que votre index comporte un champ Address
avec les sous-champs Street
, City
et Country
qui sont tous récupérables. Si vous spécifiez Address
dans $select, les résultats de la requête incluront les trois sous-champs.
Exemples
Incluez les champs HotelId
, HotelName
et Rating
de niveau supérieur dans les résultats, ainsi que le sous-champ City
de Address
:
$select=HotelId, HotelName, Rating, Address/City
Le résultat peut ressembler à cet exemple :
{
"HotelId": "1",
"HotelName": "Stay-Kay City Hotel",
"Rating": 4,
"Address": {
"City": "New York"
}
}
Incluez le champ HotelName
de niveau supérieur dans les résultats. Incluez tous les sous-champs de Address
. Incluez les sous-champs Type
et BaseRate
de chaque objet de la collection Rooms
:
$select=HotelName, Address, Rooms/Type, Rooms/BaseRate
Le résultat peut ressembler à cet exemple :
{
"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
}
]
}