Lewati ke konten utama

globalSearch

Pencarian publik di seluruh judul dan nilai atribut dari catatan yang terlihat.

Deskripsi

Metode ini mencari nama dan nilai atribut dari catatan di seluruh jenis entitas. Ini mengembalikan Promise yang menyelesaikan menjadi objek IGlobalSearchResponse - kueri yang dijalankan, ditambah catatan yang ditemukan dikelompokkan berdasarkan jenis entitas, setiap item membawa konteks tentang bagaimana ia cocok.

Pencarian.globalSearch(

query*, types, visibility, offset, limit

);

Skema parameter

Skema

query(diperlukan): string
Kueri pencarian.
contoh: "musim dingin"

types: TGlobalSearchEntityType[]
Jenis entitas untuk dicari, dikirim terpisah dengan koma. Mencari setiap jenis jika diabaikan.
contoh:

["products"]

Enum: [ products, pages, blocks, slides, templates, discounts, user_groups, users, admins, menus, forms, attributes_sets, attributes, orders, workflows, events, subscriptions, collections ]

visibility: 'semua' | 'terlihat' | 'tersembunyi'
Filter visibilitas dari catatan yang dicari. Default: "semua"
contoh: "terlihat"

offset: number
Offset mode drilldown. Kirimkan hanya bersama dengan satu jenis yang dapat diakses dalam types.
contoh: 0

limit: number
Ukuran halaman mode drilldown. Kirimkan hanya bersama dengan satu jenis yang dapat diakses dalam types, jika tidak API menjawab 400 "Mode drilldown (limit/offset) memerlukan tepat satu jenis yang dapat diakses dalam types". Tanpa ini setiap grup dikembalikan secara penuh.
contoh: 20

Contoh

Contoh minimal

const response = await Search.globalSearch('winter');

Contoh dengan atribut

// Drilldown: offset/limit are accepted only alongside exactly one type.
const response = await Search.globalSearch('winter', ['products'], 'visible', 0, 20);

Merender grup

const { query, groups } = await Search.globalSearch('test');

groups.forEach((group) => {
console.log(`${group.type} (${group.items.length}${group.hasMore ? '+' : ''})`);

group.items.forEach((item) => {
// fragment is plain text — safe to highlight yourself
console.log(item.title ?? item.identifier, item.matchKind, item.fragment);
});
});

Contoh respons

{
"query": "test",
"groups": [
{
"type": "pages",
"items": [
{
"type": "pages",
"id": 50,
"title": "Test",
"subtitle": "test",
"matchKind": "exact",
"matchedField": "url",
"langCode": "en_US"
}
],
"hasMore": false
},
{
"type": "blocks",
"items": [
{
"type": "blocks",
"id": 4,
"title": "test",
"identifier": "test",
"matchKind": "exact",
"matchedField": "identifier",
"langCode": "en_US"
}
],
"hasMore": false
},
{
"type": "discounts",
"items": [
{
"type": "discounts",
"id": 1,
"title": "Example discount",
"identifier": "example_discount",
"matchKind": "attributeValue",
"matchedField": "attributeValue",
"matchedAttribute": {
"identifier": "example_discount",
"title": "example_discount"
},
"fragment": "test value",
"langCode": "en_US"
}
],
"hasMore": false
}
]
}

Skema respons

Skema: IGlobalSearchResponse

query: string
Kueri yang menghasilkan hasil.
contoh: "musim dingin"

groups: IGlobalSearchGroup[]
Catatan yang ditemukan dikelompokkan berdasarkan jenis entitas.

groups.type: TGlobalSearchEntityType
Jenis entitas dari grup.
contoh: "produk"

groups.items: IGlobalSearchItem[]
Catatan yang ditemukan dalam jenis entitas ini.

groups.items.type: TGlobalSearchEntityType
Jenis entitas dari catatan yang ditemukan.
contoh: "produk"

groups.items.id: number | string
Id entitas; sebuah string untuk alur kerja dan atribut.
contoh: 12345

groups.items.title: string
Judul tampilan; tidak ada jika catatan tidak memiliki nama sendiri (pesanan, pengguna tanpa login).
contoh: "Jaket musim dingin"

groups.items.identifier: string
Identifikasi mesin (penanda) dari catatan.
contoh: "jaket_musim_dingin"

groups.items.subtitle: string
Baris sekunder (url, penyimpanan, node).
contoh: "katalog/musim_dingin"

groups.items.matchKind: TGlobalSearchMatchKind
Bagaimana catatan cocok dengan kueri.
contoh: "judul"

groups.items.matchedField: TGlobalSearchMatchedField
Bidang konkret yang cocok dengan kueri.
contoh: "judul"

groups.items.matchedAttribute: Record<string, unknown>
Atribut tempat kecocokan terjadi.

groups.items.fragment: string
Konteks teks biasa di sekitar kecocokan, tanpa markup.
contoh: "jaket musim dingin yang hangat"

groups.items.langCode: string
Kode bahasa dari nilai yang cocok.
contoh: "en_US"

groups.items.isVisible: boolean
Visibilitas dari catatan yang ditemukan.
contoh: true

groups.items.parent: Record<string, unknown>
Catatan pemilik untuk entitas tanpa halaman sendiri (slide ke blok, pesanan ke penyimpanan).

groups.items.attributeSetId: number
Id set atribut pemilik; hanya untuk type=attributes.
contoh: 12

groups.hasMore: boolean
Apakah lebih banyak catatan dari jenis ini tersedia di luar halaman yang diminta.
contoh: false

ℹ️ offset dan limit memerlukan tepat satu jenis yang dapat diakses dalam types; kombinasi lain menjawab 400. Hilangkan keduanya untuk mendapatkan setiap grup secara penuh - lihat Mode Drilldown.