Синтаксис OData $select в поиске ИИ Azure

В службе "Поиск ИИ Azure" параметр $select указывает, какие поля следует включить в результаты поиска. В этой статье описывается синтаксис OData $select и приведены примеры.

Построение и константы пути полей описаны в обзоре языка OData в поиске ИИ Azure. Дополнительные сведения о композиции результатов поиска см. в статье о работе с результатами поиска в службе "Поиск ИИ Azure".

Синтаксис

Параметр $select определяет, какие поля из каждого документа будут возвращены в результирующем наборе запроса. Грамматика параметра $select определяется следующей записью в расширенной форме Бэкуса — Наура (EBNF):

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

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

Кроме того, вам может помочь интерактивная схема синтаксиса:

Примечание.

См . справочник по синтаксису выражений OData для поиска ИИ Azure для полного EBNF.

Параметр $select существует в двух формах:

  1. С одиночной звездочкой (*), указывающей, что должны возвращаться все извлекаемые поля.
  2. С разделенным запятыми списком путей к полям, который определяет, какие поля следует возвратить.

При использовании второй формы вы можете указать в списке только доступные для извлечения поля.

Если вы перечисляете сложное поле без явного указания его подфилдов, все извлекаемые подфилды будут включены в результирующий набор запроса. Например, предположим, что индекс имеет Address поле с полями Street, Cityа Country подфилды — все извлекаемые. Если вы указали Address в $select, результаты запроса будут содержать все три подполя.

Примеры

HotelIdВключите поля , HotelNameа также Rating поля верхнего уровня в результаты и включите подполе CityAddress:

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

Результаты могут выглядеть следующим образом:

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

HotelName Включите поле верхнего уровня в результаты. Включите все подфилды Address. Type Включите в BaseRate коллекцию Rooms подфилды каждого объекта:

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

Результаты могут выглядеть следующим образом:

{
  "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
    }
  ]
}

Следующие шаги