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

Примечание.

Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.

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

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

Синтаксис

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

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

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

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

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

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

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

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

Примеры

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

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

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

{
  "HotelId": "1",
  "HotelName": "Stay-Kay City Hotel",
  "Rating": 4,
  "Address": {
    "City": "New York"
  }
}

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

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

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

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

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