Azure AI Search의 OData $select 구문

Azure AI Search 에서 $select 매개 변수는 검색 결과에 포함할 필드를 지정합니다. 이 문서에서는 $select의 OData 구문을 설명하고 예를 제공합니다.

필드 경로 생성 및 상수는 Azure AI Search의 OData 언어 개요에 설명되어 있습니다. 검색 결과 컴퍼지션에 대한 자세한 내용은 Azure AI Search에서 검색 결과를 사용하는 방법을 참조하세요.

구문

$select 매개 변수는 쿼리 결과 집합에 반환되는 각 문서에 대한 필드를 결정합니다. 다음 EBNF(Extended Backus-Naur Form)는 $select 매개 변수의 문법을 정의합니다.

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

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

다음과 같은 대화형 구문 다이어그램도 사용할 수 있습니다.

참고 항목

전체 EBNF는 Azure AI Search에 대한 OData 식 구문 참조를 참조하세요.

$select 매개 변수는 다음 두 가지 형식으로 제공됩니다.

  1. 검색 가능한 모든 필드를 반환해야 함을 나타내는 단일 별표(*또는
  2. 반환해야 하는 필드를 식별하는 쉼표로 구분된 필드 경로 목록입니다.

두 번째 폼을 사용하는 경우 목록에서 검색 가능한 필드만 지정할 수 있습니다.

하위 필드를 명시적으로 지정하지 않고 복잡한 필드를 나열하면 쿼리 가능한 모든 하위 필드가 쿼리 결과 집합에 포함됩니다. 예를 들어 인덱스에 Address 필드와 모두 검색 가능한 Street, City, Country 하위 필드가 있다고 가정합니다. $select에서 Address를 지정하면 쿼리 결과에 세 개의 하위 필드가 모두 포함됩니다.

예제

결과에 HotelId, HotelNameRating 최상위 필드를 포함하고 AddressCity 하위 필드를 포함합니다.

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

예제 결과는 다음과 같습니다.

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

결과에 HotelName 최상위 필드를 포함합니다. Address의 모든 하위 필드를 포함합니다. Rooms 컬렉션에 있는 각 개체의 TypeBaseRate 하위 필드를 포함합니다.

    $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
    }
  ]
}

다음 단계