FacetSpec

Spesifikasi faset untuk melakukan penelusuran dengan faset.

Representasi JSON
{
  "facetKey": {
    object (FacetKey)
  },
  "limit": integer,
  "excludedFilterKeys": [
    string
  ],
  "enableDynamicPosition": boolean
}
Kolom
facetKey

object (FacetKey)

Wajib diisi. Spesifikasi kunci faset.

limit

integer

Nilai faset maksimum yang ditampilkan untuk faset ini. Jika tidak ditentukan, nilai defaultnya adalah 20. Nilai maksimum yang diizinkan adalah 300. Nilai di atas 300 akan dikonversi menjadi 300. Untuk agregasi dalam penelusuran layanan kesehatan, jika [FacetKey.key] adalah "healthcare_aggregation_key", batas akan diganti menjadi 10.000 secara internal, terlepas dari nilai yang ditetapkan di sini.

Jika kolom ini negatif, INVALID_ARGUMENT akan ditampilkan.

excludedFilterKeys[]

string

Daftar kunci yang akan dikecualikan saat membuat faset.

Secara default, FacetKey.key tidak dikecualikan dari filter kecuali jika tercantum di kolom ini.

Mencantumkan kunci faset di kolom ini memungkinkan nilainya muncul sebagai hasil faset, meskipun difilter dari hasil penelusuran. Penggunaan kolom ini tidak memengaruhi hasil penelusuran yang ditampilkan.

Misalnya, ada 100 dokumen dengan faset warna "Merah" dan 200 dokumen dengan faset warna "Biru". Kueri yang berisi filter "color:ANY("Red")" dan memiliki "color" sebagai FacetKey.key secara default hanya akan menampilkan dokumen "Merah" dalam hasil penelusuran, dan juga menampilkan "Merah" dengan jumlah 100 sebagai satu-satunya faset warna. Meskipun ada juga dokumen biru yang tersedia, "Biru" tidak akan ditampilkan sebagai nilai faset yang tersedia.

Jika "color" tercantum di "excludedFilterKeys", kueri akan menampilkan nilai faset "Merah" dengan jumlah 100 dan "Biru" dengan jumlah 200, karena kunci "color" kini dikecualikan dari filter. Karena kolom ini tidak memengaruhi hasil penelusuran, hasil penelusuran masih difilter dengan benar untuk hanya menampilkan dokumen "Merah".

Maksimal 100 nilai diizinkan. Jika tidak, error INVALID_ARGUMENT akan ditampilkan.

enableDynamicPosition

boolean

Mengaktifkan posisi dinamis untuk faset ini. Jika ditetapkan ke benar (true), posisi faset ini di antara semua faset dalam respons akan ditentukan secara otomatis. Jika faset dinamis diaktifkan, faset tersebut akan diurutkan bersama. Jika ditetapkan ke salah (false), posisi faset ini dalam respons akan sama seperti dalam permintaan, dan faset ini akan diberi peringkat sebelum faset dengan posisi dinamis diaktifkan dan semua faset dinamis.

Misalnya, Anda mungkin selalu ingin faset rating ditampilkan dalam respons, tetapi faset rating tidak harus selalu ditampilkan di bagian atas. Dalam hal ini, Anda dapat menetapkan enableDynamicPosition ke benar (true) sehingga posisi faset rating dalam respons ditentukan secara otomatis.

Contoh lain, dengan asumsi Anda memiliki faset berikut dalam permintaan:

  • "rating", enableDynamicPosition = true

  • "price", enableDynamicPosition = false

  • "brands", enableDynamicPosition = false

Selain itu, Anda juga mengaktifkan faset dinamis, yang menghasilkan faset gender. Kemudian, urutan akhir faset dalam respons dapat berupa ("price", "brands", "rating", "gender") atau ("price", "brands", "gender", "rating") bergantung pada cara API mengurutkan faset "gender" dan "rating". Namun, perhatikan bahwa "price" dan "brands" selalu diberi peringkat di posisi pertama dan kedua karena enableDynamicPosition-nya adalah salah (false).

FacetKey

Menentukan cara faset dihitung.

Representasi JSON
{
  "key": string,
  "intervals": [
    {
      object (Interval)
    }
  ],
  "restrictedValues": [
    string
  ],
  "prefixes": [
    string
  ],
  "contains": [
    string
  ],
  "caseInsensitive": boolean,
  "orderBy": string
}
Kolom
key

string

Wajib diisi. Kunci faset tekstual dan numerik yang didukung dalam objek Document, yang digunakan untuk menghitung nilai faset. Kunci faset bersifat peka huruf besar/kecil.

intervals[]

object (Interval)

Tetapkan hanya jika nilai harus dikelompokkan ke dalam interval. Harus ditetapkan untuk faset dengan nilai numerik. Tidak boleh ditetapkan untuk faset dengan nilai teks. Jumlah interval maksimum adalah 30.

restrictedValues[]

string

Hanya dapatkan faset untuk nilai terbatas yang diberikan. Hanya didukung di kolom tekstual. Misalnya, "category" memiliki tiga nilai "Action > 2022", "Action > 2021", dan "Sci-Fi > 2022". Jika "restrictedValues" ditetapkan ke "Action > 2022", faset "category" hanya berisi "Action > 2022". Hanya didukung di kolom tekstual. Maksimumnya adalah 10.

prefixes[]

string

Hanya dapatkan nilai faset yang dimulai dengan awalan string yang diberikan. Misalnya, "category" memiliki tiga nilai "Action > 2022", "Action > 2021", dan "Sci-Fi > 2022". Jika "prefixes" ditetapkan ke "Action", faset "category" hanya berisi "Action > 2022" dan "Action > 2021". Hanya didukung di kolom tekstual. Maksimumnya adalah 10.

contains[]

string

Hanya dapatkan nilai faset yang berisi string yang diberikan. Misalnya, "category" memiliki tiga nilai "Action > 2022", "Action > 2021", dan "Sci-Fi > 2022". Jika "contains" ditetapkan ke "2022", faset "category" hanya berisi "Action > 2022" dan "Sci-Fi > 2022". Hanya didukung di kolom tekstual. Maksimumnya adalah 10.

caseInsensitive

boolean

Benar (true) untuk membuat kunci faset tidak peka huruf besar/kecil saat mendapatkan nilai faset dengan awalan atau berisi; salah (false) jika tidak.

orderBy

string

Urutan dokumen yang ditampilkan.

Nilai yang diperbolehkan adalah:

Jika tidak ditetapkan, nilai tekstual akan diurutkan dalam urutan alami; interval numerik akan diurutkan dalam urutan yang diberikan oleh FacetSpec.FacetKey.intervals.