Cấu trúc search Storefront API
Mô tả cấu trúc được dùng trong tham số query
- Term search
- Field search
- Range search
- Not query
- Boolean query
- Grouping
- Phrase search
- Prefix search
- Exist search
Term search
Tìm đối tượng có chứa từ khóa cần tìm kiếm không phân biệt hoa thường
Ví dụ tìm các sản phẩm có “Bánh” và “kẹo”:
query=Bánh kẹo
Ví dụ graphql
{
products(first: 5, query: "Bánh kẹo" ) {
edges {
node {
id
name
}
}
}
}
Field search
Tìm đối tượng mà thuộc tính thỏa mãn điều kiện nào đó
Ví dụ tìm các sản phẩm có tên “Balo” và nhà cung cấp “Alber”:
query=name:Balo vendor:Alber
Ví dụ graphql
{
products(first: 5, query: "name:Balo vendor:Alber" ) {
edges {
node {
id
name
vendor
}
}
}
}
Range search
Tìm đối tượng mà thuộc tính có giá trị theo khoảng. Hỗ trợ các toán tử: >
, <
, >=
, <=
Ví dụ tìm các sản phẩm có thời gian tạo từ “2022-04-01” đến “2022-04-08”:
query=created_on:>='2022-04-01' AND created_on:<='2022-04-08'
Ví dụ graphql
{
products(first: 5, query: "created_on:>='2022-04-01' AND created_on:<='2022-04-08'" ) {
edges {
node {
id
name
created_on
}
}
}
}
Not query
Tìm đối tượng không chứa giá trị nào đó
Ví dụ tìm các sản phẩm không có từ “Bánh”:
query=-Bánh
hoặc
query=NOT Bánh
Cấu trúc tổng quát:
query=-field:value -value -(subquery)
Ví dụ graphql
{
products(first: 5, query: "-Bánh" ) {
edges {
node {
id
name
}
}
}
}
Boolean query
Tìm kiếm kết hợp logic AND
, OR
Ví dụ tìm các sản phẩm có từ “Bánh” và “Kẹo”:
query=Bánh AND Kẹo
hoặc
query=Bánh Kẹo
Ví dụ tìm các sản phẩm có từ “Bánh” hoặc “Kẹo”:
query=Bánh OR Kẹo
Ví dụ graphql
{
products(first: 5, query: "Bánh OR Kẹo" ) {
edges {
node {
id
name
}
}
}
}
Grouping
Sử dụng dấu đóng mở ngoặc nhọn để kết hợp các câu tìm kiếm nhỏ hơn
Ví dụ tìm các sản phẩm còn có thể bán và có tên có từ “Bánh” hoặc “Kẹo”:
query=available_for_sale:true AND (name:'Bánh' OR name:'Kẹo')
Ví dụ graphql
{
products(first: 5, query: "available_for_sale:true AND (name:'Bánh' OR name:'Kẹo')" ) {
edges {
node {
id
name
}
}
}
}
Phrase search
Tìm kiếm theo cụm từ được bao bởi dấu nháy đơn hoặc nháy kép
Ví dụ tìm các sản phẩm tên có chứa “Bánh Kẹo”:
query=name:"Bánh Kẹo"
Ví dụ graphql
{
products(first: 5, query: "name:'Bánh Kẹo'" ) {
edges {
node {
id
name
}
}
}
}
Prefix search
Tìm kiếm đối tượng có chứa từ bắt đầu bởi từ khóa
Ví dụ tìm các sản phẩm tên bắt đầu bởi “Ba” như “Balo”:
query=name:Ba*
Ví dụ graphql
{
products(first: 5, query: "name:Ba*" ) {
edges {
node {
id
name
}
}
}
}
Exist search
Tìm kiếm đối tượng mà thuộc tính có giá trị non-null
Ví dụ tìm các sản phẩm mà thuộc tính nhà cung cấp non-null
:
query=vendor:*
Ví dụ graphql
{
products(first: 5, query: "vendor:*" ) {
edges {
node {
id
name
vendor
}
}
}
}