Bagikan melalui


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 Azure AI Search 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 bidang HotelId, HotelName, dan Rating tingkat atas dalam hasil, dan sertakan subbidang City dari Address:

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

Contoh hasil mungkin terlihat seperti ini:

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

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

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

Contoh hasil mungkin terlihat seperti ini:

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

Langkah berikutnya