Chuyển đến nội dung chính

globalSearch

Tìm kiếm công khai trên các tiêu đề và giá trị thuộc tính của các bản ghi hiển thị.

Description

Phương thức này tìm kiếm tên và giá trị thuộc tính của các bản ghi trên các loại thực thể. Nó trả về một Promise mà khi hoàn thành sẽ trả về một đối tượng IGlobalSearchResponse - truy vấn mà nó đã chạy, cộng với các bản ghi được tìm thấy được nhóm theo loại thực thể, mỗi mục mang theo ngữ cảnh về cách mà nó khớp.

Tìm kiếm.globalSearch(

query*, types, visibility, offset, limit

);

Parameters schema

Schema

query(bắt buộc): string
Truy vấn tìm kiếm.
ví dụ: "mùa đông"

types: TGlobalSearchEntityType[]
Các loại thực thể để tìm kiếm, gửi dưới dạng phân cách bằng dấu phẩy. Tìm kiếm mọi loại khi không chỉ định.
ví dụ:

["products"]

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

visibility: 'tất cả' | 'hiển thị' | 'ẩn'
Bộ lọc hiển thị của các bản ghi được tìm kiếm. Mặc định: "tất cả"
ví dụ: "hiển thị"

offset: number
Độ lệch chế độ khoan sâu. Chỉ truyền nó cùng với một loại có thể truy cập duy nhất trong types.
ví dụ: 0

limit: number
Kích thước trang chế độ khoan sâu. Chỉ truyền nó cùng với một loại có thể truy cập duy nhất trong types, nếu không API sẽ trả về 400 "Chế độ khoan sâu (limit/offset) yêu cầu chính xác một loại có thể truy cập trong types". Nếu không có nó, mỗi nhóm sẽ được trả về đầy đủ.
ví dụ: 20

Examples

Minimal example

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

Example with attributes

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

Rendering the groups

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);
});
});

Example response

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

Response schema

Schema: IGlobalSearchResponse

query: string
Truy vấn mà các kết quả được tạo ra cho.
ví dụ: "mùa đông"

groups: IGlobalSearchGroup[]
Các bản ghi được tìm thấy được nhóm theo loại thực thể.

groups.type: TGlobalSearchEntityType
Loại thực thể của nhóm.
ví dụ: "products"

groups.items: IGlobalSearchItem[]
Các bản ghi được tìm thấy trong loại thực thể này.

groups.items.type: TGlobalSearchEntityType
Loại thực thể của bản ghi được tìm thấy.
ví dụ: "products"

groups.items.id: number | string
ID thực thể; một chuỗi cho workflows và attributes.
ví dụ: 12345

groups.items.title: string
Tiêu đề hiển thị; không có khi bản ghi không có tên riêng (đơn hàng, người dùng không có đăng nhập).
ví dụ: "Áo khoác mùa đông"

groups.items.identifier: string
Định danh máy (dấu hiệu) của bản ghi.
ví dụ: "áo_khoác_mùa_đông"

groups.items.subtitle: string
Dòng phụ (url, lưu trữ, nút).
ví dụ: "catalog/mùa_đông"

groups.items.matchKind: TGlobalSearchMatchKind
Cách mà bản ghi khớp với truy vấn.
ví dụ: "title"

groups.items.matchedField: TGlobalSearchMatchedField
Trường cụ thể đã khớp với truy vấn.
ví dụ: "title"

groups.items.matchedAttribute: Record<string, unknown>
Thuộc tính mà sự khớp đã xảy ra trong.

groups.items.fragment: string
Ngữ cảnh văn bản thuần xung quanh sự khớp, không có định dạng.
ví dụ: "áo khoác mùa đông ấm áp"

groups.items.langCode: string
Mã ngôn ngữ của giá trị đã khớp.
ví dụ: "en_US"

groups.items.isVisible: boolean
Độ hiển thị của bản ghi được tìm thấy.
ví dụ: true

groups.items.parent: Record<string, unknown>
Bản ghi sở hữu cho các thực thể không có trang riêng (slides đến block, đơn hàng đến lưu trữ).

groups.items.attributeSetId: number
ID bộ thuộc tính sở hữu; chỉ dành cho type=attributes.
ví dụ: 12

groups.hasMore: boolean
Liệu có nhiều bản ghi của loại này có sẵn ngoài trang yêu cầu không.
ví dụ: false

ℹ️ offsetlimit yêu cầu chính xác một loại có thể truy cập trong types; bất kỳ sự kết hợp nào khác sẽ trả về 400. Bỏ qua cả hai để nhận được mỗi nhóm đầy đủ - xem Chế độ khoan sâu.