Sintaks $select OData di Azure AI Search

Di Azure AI Search, parameter $select menentukan bidang mana yang akan disertakan dalam hasil pencarian. Artikel ini menguraikan sintaks OData $select dan memberikan contoh.

Konstruksi dan konstanta jalur bidang dijelaskan dalam gambaran umum bahasa OData di Azure AI Search. Untuk informasi selengkapnya tentang komposisi hasil pencarian, lihat Cara bekerja dengan hasil pencarian di Azure AI Search.

Sintaks

Parameter $select menentukan bidang mana untuk setiap dokumen yang dikembalikan dalam kumpulan hasil kueri. EBNF(Extended Backus-Naur Form) berikut mendefinisikan tata bahasa untuk parameter $select:

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

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

Diagram sintaksis interaktif juga tersedia:

Catatan

Lihat Referensi sintaks ekspresi OData untuk Pencarian Azure AI untuk EBNF lengkap.

Parameter $select memiliki dua bentuk:

  1. Satu bintang (*), menunjukkan bahwa semua bidang yang dapat diambil harus dikembalikan, atau
  2. Daftar jalur bidang yang dipisahkan koma, mengidentifikasi bidang mana yang harus dikembalikan.

Saat menggunakan formulir kedua, Anda hanya dapat menentukan bidang yang dapat diambil dalam daftar.

Jika Anda mencantumkan bidang kompleks tanpa menentukan sub-bidangnya secara eksplisit, semua subbidang yang dapat diambil akan disertakan dalam kumpulan hasil kueri. Misalnya, asumsikan indeks Anda memiliki Address bidang dengan Street, City, dan Country subbidang yang semuanya dapat diambil. Jika Anda menentukan Address dalam $select, hasil kueri akan menyertakan ketiga subbidang.

Contoh

Sertakan HotelIdbidang , HotelName, dan Rating tingkat atas dalam hasil, dan sertakan City subbidang Address:

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

Contoh hasil mungkin terlihat seperti ini:

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

Sertakan HotelName bidang tingkat atas dalam hasil. Sertakan semua subbidang Address. Sertakan Type subbidang dan BaseRate dari setiap objek dalam Rooms koleksi:

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

Contoh hasil mungkin terlihat seperti ini:

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

Langkah berikutnya