Składnia $select OData w usłudze Azure AI Search
W usłudze Azure AI Search parametr $select określa pola do uwzględnienia w wynikach wyszukiwania. W tym artykule opisano składnię OData $select i przedstawiono przykłady.
Konstrukcja i stałe ścieżki pola są opisane w omówieniu języka OData w usłudze Azure AI Search. Aby uzyskać więcej informacji na temat kompozycji wyników wyszukiwania, zobacz Jak pracować z wynikami wyszukiwania w usłudze Azure AI Search.
Składnia
Parametr $select określa, które pola dla każdego dokumentu są zwracane w zestawie wyników zapytania. Następujący formularz EBNF (rozszerzony formularz Backus-Naur) definiuje gramatykę dla parametru $select :
select_expression ::= '*' | field_path(',' field_path)*
field_path ::= identifier('/'identifier)*
Dostępny jest również interakcyjny diagram składni:
Uwaga
Zobacz dokumentację składni wyrażeń OData dla usługi Azure AI Search , aby zapoznać się z pełną pełną NF.
Parametr $select jest dostępny w dwóch formach:
- Pojedyncza gwiazdka (
*
), wskazująca, że wszystkie pola, które można pobrać, powinny zostać zwrócone lub - Rozdzielona przecinkami lista ścieżek pól identyfikujących pola, które powinny być zwracane.
W przypadku korzystania z drugiego formularza można określić tylko pola, które można pobrać na liście.
Jeśli wyświetlisz pole złożone bez jawnego określenia pól podrzędnych, wszystkie pola podrzędne, które można pobrać, zostaną uwzględnione w zestawie wyników zapytania. Załóżmy na przykład, że indeks zawiera Address
pole z polami Street
podrzędnymi , City
i Country
, które można pobrać. Jeśli określisz Address
w $select, wyniki zapytania będą zawierać wszystkie trzy pola podrzędne.
Przykłady
Uwzględnij HotelId
pola , HotelName
i Rating
najwyższego poziomu w wynikach i uwzględnij City
pole podrzędne :Address
$select=HotelId, HotelName, Rating, Address/City
Przykładowy wynik może wyglądać następująco:
{
"HotelId": "1",
"HotelName": "Stay-Kay City Hotel",
"Rating": 4,
"Address": {
"City": "New York"
}
}
Uwzględnij pole najwyższego HotelName
poziomu w wynikach. Uwzględnij wszystkie pola podrzędne .Address
Uwzględnij Type
pola podrzędne i BaseRate
każdego obiektu w kolekcji Rooms
:
$select=HotelName, Address, Rooms/Type, Rooms/BaseRate
Przykładowy wynik może wyglądać następująco:
{
"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
}
]
}