全部产品
Search
文档中心

Artificial Intelligence Recommendation:Konfigurasi re-ranking

更新时间:Mar 18, 2026

Tahap sorting dijalankan setelah tahap fine-grained sorting. Pada tahap ini, Anda dapat mengurutkan item, menerapkan diversifikasi, dan menambahkan aturan jendela.

Cara mengonfigurasi

Konfigurasi sorting berkorespondensi dengan SortConfs dalam ikhtisar konfigurasi. SortConfs merupakan struktur []object yang memungkinkan Anda mengonfigurasi beberapa kebijakan sorting. PAI-Rec menyediakan kebijakan bawaan berikut: BoostScoreSort, BoostScoreByWeight, ItemRankScore, DiversityRuleSort, DPPSort, dan MultiRecallMixSort.

Konfigurasi sorting umum

Setiap konfigurasi sorting menggunakan subset dari konfigurasi umum. Bagian ini menjelaskan konfigurasi tersebut untuk menghindari pengulangan.

Contoh konfigurasi:

{
    "SortConfs": [
        {
            "Name": "",
            "SortType": ""
        }
    ]
}

Field

Type

Required

Description

Name

string

Yes

Nama khusus untuk pengurutan. Anda dapat merujuk nama ini dalam SortNames.

SortType

string

Yes

Jenis sorting. Nilai enumerasi:

  • ItemRankScore

  • BoostScoreSort

  • DiversityRuleSort

  • DPPSort

  • MultiRecallMixSort

Boost score sort (BoostScoreSort)

Setelah model fine-grained sorting dipanggil, setiap item menerima skor. Berdasarkan kebutuhan bisnis, Anda mungkin perlu memodifikasi skor ini dengan meningkatkan (boost) atau menurunkannya (demote).

Operasi boost atau demote terdiri dari dua bagian:

  • Tetapkan aturan kondisional. Anda dapat menggunakan properti item atau user, seperti kategori atau jenis kelamin, untuk menentukan apakah kondisi terpenuhi.

  • Tetapkan ekspresi boost atau demote. Saat ini, Anda hanya dapat menetapkan ekspresi untuk skor, seperti score × 1.2 atau score × 0.5.

Contoh konfigurasi:

{
    "SortConfs": [
        {
            "Name": "BoostScoreSort",
            "SortType": "BoostScoreSort",
            "Debug": false,
            "BoostScoreConditions": [
                {
                    "Conditions": [
                        {
                            "Name": "sex",
                            "Domain": "item",
                            "Type": "string",
                            "Value": "gender",
                            "Operator": "equal"
                        }
                    ],
                    "Expression": "score * 2"
                }
            ]
        }
    ]
}

Konfigurasi ini mengalikan skor dengan 2 untuk item yang memiliki fitur sex bernilai male.

Field name

Type

Required

Description

Name

string

Yes

Nama kustom untuk sort.

SortType

string

Yes

Jenis sorting. Field statis: `BoostScoreSort`.

Debug

bool

No

Flag debug. Jika diatur ke `true`, skor asli sebelum boost atau demote direkam dalam `properties` item sebagai `org_score`. Anda kemudian dapat mengaktifkan flag debug dalam permintaan untuk melihat nilai properti item tersebut. Ini hanya untuk debugging dan tidak boleh diaktifkan di lingkungan produksi.

BoostScoreConditions

json array

Yes

Konfigurasi kondisional untuk boost atau demote skor. Anda dapat mengonfigurasi beberapa kondisi untuk boost atau demote skor.

  • Conditions

[]FilterParamConfig

Yes

Aturan kondisional untuk boost atau demote skor.

  • Expression

string

Yes

Ekspresi untuk boost atau demote skor. `score` merepresentasikan skor item saat ini. Ekspresi dapat mereferensikan properti item. Misalnya, jika `item_weight` adalah properti item, Anda dapat mengatur ekspresi menjadi `score × item_weight`.

Konfigurasi FilterParamConfig adalah sebagai berikut:

Field

Type

Required

Description

Name

string

Yes

Nama fitur untuk item atau user.

Domain

string

Yes

Nilai enumerasi: `item` atau `user`. Menentukan apakah opsi `Name` merupakan fitur item atau fitur user. Nama tersebut harus ditemukan dalam `properties` item atau user.

Operator

string

Yes

Nilai enumerasi: `equal`, `not_equal`, `in`, `not_in`, `greater`, `greaterThan`, `less`, `lessThan`, `contains`, atau `not_contains`.

Type

string

Yes

Tipe fitur.

Value

object

Yes

Nilai fitur.

Untuk informasi lebih lanjut tentang pengaturan kondisional, lihat Adjust count filter (AdjustCountFilter).

Boost score by weight (BoostScoreByWeight)

Saat melakukan boost atau demote skor item, item yang berbeda dapat memiliki bobot yang berbeda. Bobot tersebut merupakan field dalam tabel item dan digunakan untuk menyesuaikan skor.

Rumus skor: weight × item.score

Contoh konfigurasi:

{
    "SortConfs": [
        {
            "Name": "BoostScoreByWeight",
            "SortType": "BoostScoreByWeight",
            "TimeInterval": 172800,
            "BoostScoreByWeightDao": {
                "AdapterType": "hologres",
                "HologresName": "pai_rec",
                "HologresTableName": "test",
                "ItemFieldName": "item_id",
                "WeightFieldName": "weight"
            }
        }
    ]
}

BoostScoreByWeightDao

Field

Type

Required

Description

AdapterType

string

Yes

Jenis sumber data. Saat ini, hanya `hologres` yang didukung.

HologresName

string

Yes

Nama kustom instans Hologres yang dikonfigurasi dalam konfigurasi sumber data (`HologresConfs`), seperti `holo_info` dalam konfigurasi sumber data.

HologresTableName

string

Yes

Nama tabel bobot item di Hologres.

ItemFieldName

string

Yes

Kunci primer tabel bobot item.

WeightFieldName

string

Yes

Field bobot dalam tabel bobot item.

Item rank score (ItemRankScore)

ItemRankScore mengurutkan item secara descending berdasarkan skornya. Fitur ini sudah terintegrasi dalam Mesin DPI dan dapat langsung digunakan di SortNames.

Diversity rule sort (DiversityRuleSort)

Saat menghasilkan rekomendasi, pertimbangkan tidak hanya minat pengguna tetapi juga diversitas item. Hal ini memungkinkan pencampuran item dari kategori dan properti yang berbeda dalam output.

Anda dapat mengonfigurasi aturan sebagai berikut:

Aturan diversitas rekomendasi

Glosarium:

  1. Dimensi diversifikasi: Properti item yang digunakan untuk diversifikasi, seperti kategori, penulis, atau tag.

  2. Kebijakan penyebaran:

    • Interval minimum k: Item dari dimensi diversifikasi tertentu dapat muncul berturut-turut paling banyak k kali.

    • Frekuensi maksimum m: Dalam jendela berukuran n, item dari dimensi diversifikasi yang sama tidak boleh muncul lebih dari m kali.

Logika penyebaran:

  • Aturan diversifikasi hanya berlaku untuk hasil dari satu permintaan. Diversitas lintas permintaan tidak dipertimbangkan.

  • Anda dapat mengonfigurasi beberapa dimensi diversifikasi.

  • Untuk setiap dimensi diversifikasi, Anda dapat mengonfigurasi beberapa kebijakan diversifikasi, masing-masing dengan parameter berbeda (k, m, n).

Contoh konfigurasi:

{
    "SortConfs": [
        {
            "Name": "DiversityRuleSort",
            "SortType": "DiversityRuleSort",
            "DiversitySize": 100,
            "DiversityRules": [
                {
                    "Dimensions": ["spfl"],
                    "WindowSize": 10,
                    "FrequencySize": 1
                }
            ],
            "ExcludeRecalls": [
                "ColdStartVideoVectorRecall",
                "LinUcbRecall_default2"
            ],
            "Conditions": [
                {
                    "Name": "spflPick",
                    "Domain": "user",
                    "Type": "string",
                    "Value": "",
                    "Operator": "equal"
                }
            ]
        }
    ]
}

Sort ini harus digunakan bersama parameter ExcludeRecalls.

DiversityRules

Field

Type

Required

Description

Name

string

Yes

Nama kustom untuk sort.

SortType

string

Yes

Jenis sorting. Field statis: `DiversityRuleSort`.

DiversitySize

int

No

Jumlah item yang akan didiversifikasi. Nilai default adalah `size` dari permintaan.

Conditions

[]FilterParamConfig

No

Kondisi untuk aturan diversifikasi. Aturan diversifikasi hanya diterapkan jika properti user memenuhi kondisi tertentu. Untuk detail pengaturan kondisional, lihat Operator examples for conditional matching. Kondisi di sini diatur berdasarkan properti user, sehingga Anda harus mengatur `Domain` ke `user`.

ExcludeRecalls

[]string

No

Daftar ID recall yang dikecualikan dari sorting diversitas.

DiversityRules

json array

Yes

Aturan diversifikasi. Anda dapat menetapkan beberapa aturan.

  • Dimensions

[]string

Yes

Properti item yang digunakan untuk diversifikasi.

  • IntervalSize

int

Yes

Mengontrol jumlah kemunculan berturut-turut item dari dimensi yang sama. Ini adalah nilai k yang dijelaskan sebelumnya.

  • WindowSize

int

No

Ukuran jendela. Ini adalah nilai n yang dijelaskan sebelumnya.

  • FrequencySize

int

No

Jumlah pengulangan dalam jendela. Ini adalah nilai m yang dijelaskan sebelumnya.

  • Weight

int

No

Bobot aturan keragaman.

ExclusionRules

json array

No

Aturan pengecualian. Mengecualikan item tertentu yang memenuhi kondisi dari posisi tertentu.

  • Positions

[]int

Yes

Posisi output item, dimulai dari 1. Jika `size` permintaan adalah 10, posisinya adalah 1, 2, 3, ..., 10.

  • Conditions

[]FilterParamConfig

Yes

Kondisi aturan. Untuk detail pengaturan kondisional, lihat Operator examples for conditional matching. Ini terutama diatur untuk properti item.

ExploreItemSize

int

No

Secara default, jika item pertama dalam set kandidat tidak memenuhi aturan diversifikasi, pencarian dilanjutkan hingga selesai. Parameter ini mengontrol ukuran set kandidat yang akan dicari. Jika nilai ini terlampaui, pencarian dihentikan.

Lihat contoh berikut untuk aturan pengecualian dan kedalaman pencarian.

Item yang memenuhi kondisi tag=t1 tidak muncul di posisi output 1, 2, 3, atau 4. Item yang muncul di posisi 1, 2, 3, dan 4 tetap harus mematuhi aturan diversifikasi, tetapi tidak boleh memiliki tag=t1.

{
    "Name": "DiversityRuleSort",
    "SortType": "DiversityRuleSort",
    "DiversityRules": [
        {
            "Dimensions": [
                "tag"
            ],
            "WindowSize": 5,
            "FrequencySize": 1
        }
    ],
    "ExclusionRules": [
        {
            "Positions": [
                1,2,3,4
            ],
            "Conditions": [
                {
                    "Name": "tag",
                    "Domain": "item",
                    "Type": "string",
                    "Value": "t1",
                    "Operator": "equal"
                }
            ]
        }
    ],
    "ExploreItemSize" : 200
}

Saat mencari item yang memenuhi aturan diversifikasi, secara default item hanya di-output jika memenuhi semua aturan. Jika ada aturan diversifikasi yang tidak terpenuhi, sistem mencari item berikutnya hingga ditemukan item yang memenuhi semua aturan. Jika tidak ada item dalam set kandidat yang memenuhi semua aturan, item pertama yang dicari dipilih untuk di-output.

Tersedia kebijakan lain. Anda dapat menambahkan bobot pada aturan diversifikasi. Jika tidak ada item dalam set kandidat yang memenuhi semua aturan, item yang memenuhi aturan dengan total bobot tertinggi dipilih untuk di-output. Jika beberapa item memiliki total bobot tertinggi yang sama, item yang muncul paling awal dalam daftar dipilih.

Lihat contoh berikut untuk konfigurasi dengan bobot:

{
    "Name": "DiversityRuleSort",
    "SortType": "DiversityRuleSort",
    "DiversityRules": [
        {
            "Dimensions": [
                "tag"
            ],
            "WindowSize": 5,
            "FrequencySize": 1,
            "Weight": 1
        },
        {
            "Dimensions": [
                "category"
            ],
            "WindowSize": 3,
            "FrequencySize": 1,
             "Weight": 3
        }
    ],
    "ExclusionRules": [
        {
            "Positions": [
                1
            ],
            "Conditions": [
                {
                    "Name": "tag",
                    "Domain": "item",
                    "Type": "string",
                    "Value": "t1",
                    "Operator": "equal"
                }
            ]
        }
    ]
}

DPPSort

Untuk informasi lebih lanjut tentang algoritma diversitas DPP (Determinantal Point Process), lihat An Intuitive Understanding of the Determinantal Point Process-based Algorithm for Improving Recommendation Diversity.

Prasyarat: Untuk menggunakan algoritma DPP, Anda harus memiliki vektor embedding item. Vektor tersebut harus merepresentasikan konten item. Kemiripan embedding harus merepresentasikan kemiripan pada tingkat konten item, bukan pada tingkat lain seperti perilaku. Contohnya:

  • Disarankan: Embedding gambar item, embedding deskripsi teks, atau embedding yang dihasilkan dari kombinasi konten statis item seperti kategori dan properti.

  • Tidak disarankan: Embedding yang dilatih dari model berbasis data perilaku user.

Pada dasarnya, dimensi yang ingin Anda diversifikasi harus tercermin dalam embedding. Misalnya, jika Anda ingin daftar rekomendasi memiliki diversitas pada dimensi harga produk, fitur harga harus disertakan saat melatih model untuk mendapatkan vektor embedding. Jika tidak, Anda tidak akan mencapai efek yang diinginkan.

Contoh konfigurasi:

{
    "SortConfs": [
        {
            "Name": "DPPSort",
            "SortType": "DPPSort",
            "DPPConf": {
                "Name": "DPPSort",
                "DaoConf": {
                    "AdapterType": "hologres",
                    "HologresName": "geeko_rec"
                },
                "TableName": "item_embedding_metric_learning",
                "TableSuffixParam": "embedding_date",
                "TablePKey": "product_id",
                "EmbeddingColumn": "embedding",
                "Alpha": 4.5,
                "NormalizeEmb": "false",
                "WindowSize": 10
            }
        }
    ]
}

DPPConf

Field name

Type

Required

Description

Name

string

Yes

Nama kustom untuk sort.

DaoConf

DaoConfig

Yes

Konfigurasikan informasi Hologres.

TableName

string

No

Nama tabel vektor embedding item di Hologres. Ini wajib jika `EmbeddingHookNames` tidak dikonfigurasi.

TableSuffixParam

string

No

Jika tidak kosong, sistem mengambil nilai item konfigurasi ini untuk skenario saat ini dari modul `Parameter Management` di halaman DPI Engine Service Management PAI-Rec. Nilai ini digunakan sebagai akhiran untuk `TableName`. Ini digunakan untuk mengganti tabel vektor setiap hari agar embedding tetap mutakhir. Dalam kasus ini, tabel Hologres biasanya perlu berupa tabel partisi.

TablePKey

string

No

Kunci primer tabel vektor embedding.

EmbeddingColumn

string

No

Nama field vektor dalam tabel vektor embedding.

EmbeddingSeparator

string

No

Pemisah untuk vektor embedding. Default adalah koma.

Alpha

float

Yes

Parameter dalam algoritma DPP yang digunakan untuk menyeimbangkan relevansi dan diversitas. Nilai yang lebih besar mengutamakan relevansi.

CacheTimeInMinutes

int

No

Waktu dalam menit untuk menyimpan cache vektor embedding di memori. Default: 360.

EmbeddingHookNames

[]string

No

Nama fungsi yang menghasilkan embedding item. Fungsi-fungsi ini harus didaftarkan terlebih dahulu.

NormalizeEmb

string

No

Menentukan apakah akan melakukan normalisasi L2 pada vektor embedding. Jika normalisasi L2 sudah dilakukan saat embedding dihasilkan, Anda tidak perlu melakukannya lagi. Jika tidak, atur ini ke `true`.

WindowSize

int

No

Ukuran jendela geser untuk algoritma diversitas. Diversitas hanya dijamin dalam jendela tersebut. Default: 10.

EmbMissedThreshold

float

No

Terjadi error jika proporsi item yang tidak memiliki embedding lebih tinggi dari nilai ini. Default: 0.5.

FilterRetrieveIds

[]string

No

Menentukan daftar item yang tidak perlu memanggil modul DPP, seperti item cold-start.

EnsurePositiveSim

string

No

Menentukan apakah akan memastikan bahwa kemiripan item yang dihitung berdasarkan embedding bernilai positif. Default: `true`.

CandidateCount

int

No

Ukuran set kandidat untuk diversifikasi. Secara default, mencakup semua item yang memasuki tahap sorting. Anda dapat mengaturnya ke angka yang lebih kecil untuk membatasi set kandidat hanya pada N item teratas asli.

AbortRunCount

int

No

Jika jumlah item yang memasuki tahap sorting kurang dari nilai ini, diversifikasi tidak dilakukan untuk permintaan saat ini. Default: 0.

MinScorePercent

float

No

Item memenuhi syarat untuk di-output oleh modul diversifikasi hanya jika skor sorting-nya yang dinormalisasi maksimum lebih besar dari nilai ini. Default: 0.

SSDSort

Untuk informasi lebih lanjut tentang algoritma diversitas SSD (Structured Self-Distillation), lihat Improving the Diversity of Recommendation Results: An Analysis of MMR/DPP/SSD Principles.

Prasyarat: Untuk menggunakan algoritma SSD, Anda harus memiliki vektor embedding item. Vektor tersebut harus merepresentasikan konten item. Kemiripan embedding harus merepresentasikan kemiripan pada tingkat konten item, bukan pada tingkat lain seperti perilaku. Contohnya:

Disarankan: Embedding gambar item, embedding deskripsi teks, atau embedding yang dihasilkan dari kombinasi konten statis item seperti kategori dan properti.

Tidak disarankan: Embedding yang dilatih dari model berbasis data perilaku user.

Pada dasarnya, dimensi yang ingin Anda diversifikasi harus tercermin dalam embedding. Misalnya, jika Anda ingin daftar rekomendasi memiliki diversitas pada dimensi harga produk, fitur harga harus disertakan saat melatih model untuk mendapatkan vektor embedding. Jika tidak, Anda tidak akan mencapai efek yang diinginkan.

Contoh konfigurasi:

{
    "SortConfs": [
        {
            "Name": "SSDSort",
            "SortType": "SSDSort",
            "SSDConf": {
                "Name": "SSDSort",
                "DaoConf": {
                    "AdapterType": "hologres",
                    "HologresName": "geeko_rec"
                },
                "TableName": "item_embedding_metric_learning",
                "TablePKey": "item_id",
                "EmbeddingColumn": "embedding",
                "Gamma": 0.25,
                "UseSSDStar": true,
                "NormalizeEmb": "false",
                "MinScorePercent": 0.1,
                "CandidateCount": 200,
                "WindowSize": 5
            }
        }
    ]
}

SSDConf

Field name

Type

Required

Description

Name

string

Yes

Nama kustom untuk sort.

DaoConf

DaoConfig

Yes

Konfigurasikan informasi Hologres.

TableName

string

No

Nama tabel vektor embedding item di Hologres. Ini wajib jika `EmbeddingHookNames` tidak dikonfigurasi.

TableSuffixParam

string

No

Jika tidak kosong, sistem mengambil nilai item konfigurasi ini untuk skenario saat ini dari modul `Parameter Management` di halaman DPI Engine Service Management PAI-Rec. Nilai ini digunakan sebagai akhiran untuk `TableName`. Ini digunakan untuk mengganti tabel vektor setiap hari agar embedding tetap mutakhir. Dalam kasus ini, tabel Hologres biasanya perlu berupa tabel partisi.

TablePKey

string

No

Kunci primer tabel vektor embedding.

EmbeddingColumn

string

No

Nama field vektor dalam tabel vektor embedding.

EmbeddingSeparator

string

No

Pemisah untuk vektor embedding. Default adalah koma.

Gamma

float

Yes

Parameter dalam algoritma SSD yang digunakan untuk menyeimbangkan relevansi dan diversitas. Nilai yang lebih besar mengutamakan diversitas.

UseSSDStar

bool

No

Menentukan apakah akan mengaktifkan algoritma optimasi yang disebutkan dalam makalah SSD. Default: `false`. Disarankan untuk mengaktifkannya.

CacheTimeInMinutes

int

No

Waktu dalam menit untuk menyimpan cache vektor embedding di memori. Default: 360.

EmbeddingHookNames

[]string

No

Nama fungsi yang menghasilkan embedding item. Fungsi-fungsi ini harus didaftarkan terlebih dahulu.

NormalizeEmb

string

No

Menentukan apakah akan melakukan normalisasi L2 pada vektor embedding. Jika normalisasi L2 sudah dilakukan saat embedding dihasilkan, Anda tidak perlu melakukannya lagi. Jika tidak, atur ini ke `true`.

WindowSize

int

No

Ukuran jendela geser untuk algoritma diversitas. Diversitas hanya dijamin dalam daftar item di dalam jendela tersebut. Default: 5.

EmbMissedThreshold

float

No

Terjadi error jika proporsi item yang tidak memiliki embedding lebih tinggi dari nilai ini. Default: 0.5.

FilterRetrieveIds

[]string

No

Menentukan daftar item yang tidak perlu memanggil modul SSD, seperti item cold-start.

EnsurePositiveSim

string

No

Menentukan apakah akan memastikan bahwa kemiripan item yang dihitung berdasarkan embedding bernilai positif. Default: `true`.

CandidateCount

int

No

Ukuran set kandidat untuk diversifikasi. Secara default, mencakup semua item yang memasuki tahap sorting. Anda dapat mengaturnya ke angka yang lebih kecil untuk membatasi set kandidat hanya pada N item teratas asli.

AbortRunCount

int

No

Jika jumlah item yang memasuki tahap sorting kurang dari nilai ini, diversifikasi tidak dilakukan untuk permintaan saat ini. Default: 0.

MinScorePercent

float

No

Item memenuhi syarat untuk di-output oleh modul diversifikasi hanya jika skor sorting-nya yang dinormalisasi maksimum lebih besar dari nilai ini. Default: 0.

Multi-channel recall sort (MultiRecallMixSort)

Umumnya, Anda akan memiliki banyak channel recall. Terkadang, berdasarkan kebutuhan bisnis, Anda perlu mencampur output berdasarkan tipe recall. Contohnya:

  • Ada persyaratan kuantitas eksposur untuk recall cold-start.

  • Ada persyaratan posisi untuk channel recall tertentu.

Hal ini juga dapat mencakup beberapa aturan pencampuran.

Konfigurasinya sebagai berikut:

{
    "SortConfs": [
        {
            "Name": "MixSort",
            "SortType": "MultiRecallMixSort",
            "RemainItem": false,
            "MixSortRules": [
                {
                    "MixStrategy": "random_position",
                    "NumberRate": 0.1,
                    "RecallNames": [
                        "OTSGlobalHot"
                    ]
                },
                {
                    "MixStrategy": "fix_position",
                    "Positions": [1,3,5],
                    "RecallNames": [
                        "RecallName1"
                    ]
                }
            ]
        }
    ]
}

Selain menggunakan nama recall untuk mencocokkan dan memfilter item, Anda juga dapat menggunakan pemfilteran kondisional untuk memilih item yang akan diekspos.

{
    "SortConfs": [
        {
            "Name": "MixSortByItemFeature",
            "SortType": "MultiRecallMixSort",
            "RemainItem": false,
            "MixSortRules": [
                {
                    "MixStrategy": "random_position",
                    "NumberRate": 0.1,
                    "Conditions": [
                        {
                            "Name": "gender",
                            "Domain": "item",
                            "Type": "string",
                            "Value": "man",
                            "Operator": "equal"
                        }
                    ]
                }
            ]
        }
    ]
}

Field

Type

Required

Description

Name

string

Yes

Nama kustom untuk sort.

SortType

string

Yes

Jenis sorting. Field statis: `MultiRecallMixSort`.

RemainItem

bool

No

Menentukan apakah akan menyimpan semua item. Misalnya, jika ada 500 item untuk diproses tetapi ukuran permintaan adalah 30, mengatur ini ke `false` berarti hanya hasil campuran yang disimpan. Jika diatur ke `true`, item yang tersisa juga disimpan, tetapi ditempatkan setelah 30 item campuran. Hal ini memungkinkan kontrol dan pemrosesan lebih lanjut oleh tahap sort berikutnya.

MixSortRules

json array

Yes

Aturan pencampuran. Anda dapat menetapkan beberapa aturan.

  • MixStrategy

string

Yes

Kebijakan pencampuran. Nilai enumerasi: `random_position` atau `fix_position`.

  • `random_position`: Menunjukkan bahwa posisi bersifat acak.

  • `fix_position`: Menunjukkan posisi tetap. Anda harus menentukan `Positions`.

  • Positions

[]int

No

Jika `MixStrategy` adalah `fix_position`, Anda harus menentukan `Positions`. Posisi dimulai dari 1.

  • PositionField

string

No

Jika `MixStrategy` adalah `fix_position`, Anda dapat mengambil posisi dari field properti item. `Positions` dan `PositionField` saling eksklusif. Anda hanya dapat mengatur salah satunya.

  • Number

int

No

Nilai absolut kuantitas.

  • NumberRate

float

No

Proporsi item yang dicampur. Ini hanya diatur ketika `MixStrategy` adalah `random_position`. Nilai valid berkisar dari 0 hingga 1. Jumlah spesifik dihitung dengan `request_size × NumberRate`.

  • RecallNames

[]string

No

Nama channel recall. Anda dapat menetapkan beberapa nama. Jika beberapa nama ditetapkan, mereka berbagi konfigurasi yang sama. Namun, channel recall spesifik yang digunakan tidak tetap. Urutannya ditentukan oleh posisi saat memasuki tahap sort ini.

  • Conditions

[]FilterParamConfig

No

Item yang memenuhi kondisi pencocokan akan dicampur. Untuk detail pengaturan kondisional, lihat Operator examples for conditional matching.

Cara menggunakan

Konfigurasi sorting mirip dengan konfigurasi recall. Setelah dikonfigurasi, Anda memberikan parameter SortNames untuk digunakan dalam skenario berbeda. SortNames merupakan struktur Map[string]object di mana kunci adalah skenario, dan setiap skenario berkorespondensi dengan satu set kebijakan sorting.

{
    "SortNames": {
        "${scene_name}": [
            "ItemRankScore"
        ]
    }
}
  • ${scene_name} adalah nama skenario. Jika Anda ingin menggunakan konfigurasi yang sama untuk beberapa skenario, Anda dapat menggunakan default.

  • ItemRankScore: Parameter ini adalah nama kustom sort yang didefinisikan dalam SortConfs.