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:

  1. Pojedyncza gwiazdka (*), wskazująca, że wszystkie pola, które można pobrać, powinny zostać zwrócone lub
  2. 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 Streetpodrzędnymi , Cityi Country , które można pobrać. Jeśli określisz Addressw $select, wyniki zapytania będą zawierać wszystkie trzy pola podrzędne.

Przykłady

Uwzględnij HotelIdpola , HotelNamei 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": "Secret Point Motel",
  "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": "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
    }
  ]
}

Następne kroki