Giao diện
Câu hỏi thường gặp (FAQ) — Multi Keyword Filter
Sử dụng
Operator "Bằng bất kỳ" khác gì "Chứa"?
| Operator | SQL tương đương | Mô tả |
|---|---|---|
Bằng bất kỳ ($in) | WHERE field IN ('a', 'b', 'c') | So sánh chính xác — giá trị phải trùng hoàn toàn |
Chứa ($includes) | WHERE field LIKE '%keyword%' | So sánh một phần — giá trị chứa từ khoá |
Ví dụ: Từ khoá "iPhone"
$in: Chỉ match record có giá trị chính xác là "iPhone"$includes: Match "iPhone 15 Pro", "iPhone 14", "Ốp lưng iPhone"
Có thể dùng logic AND không?
Plugin sử dụng $in (bất kỳ giá trị nào — tương đương OR). Nếu cần AND (tất cả từ khoá đều phải khớp), bạn cần kết hợp nhiều filter riêng biệt, mỗi filter một từ khoá.
Hỗ trợ những loại trường nào?
Plugin đăng ký operator cho 9 field interface: input, phone, email, uuid, sequence, integer, number, percent, nanoid.
Không hỗ trợ: trường quan hệ (relation), ngày tháng (date), boolean, JSON, rich text.
Import Excel hỗ trợ định dạng nào?
Hỗ trợ file .xlsx và .xls. Plugin sử dụng thư viện xlsx để đọc file. Lưu ý:
- Chỉ đọc sheet đầu tiên của file
- Dòng đầu tiên được coi là header (tên cột)
- Giá trị rỗng, null, undefined sẽ bị bỏ qua
- Nếu nhiều cột, giá trị từ các cột được gộp và loại trùng
Từ khoá có phân biệt hoa thường không?
Phụ thuộc vào database:
| Database | Mặc định |
|---|---|
| PostgreSQL | Có phân biệt hoa thường |
| MySQL | Không phân biệt (collation utf8_general_ci) |
| SQLite | Không phân biệt |
Nếu cần tìm kiếm không phân biệt hoa thường trên PostgreSQL, sử dụng operator $includes (ILIKE) thay vì $in.
Lỗi thường gặp
Filter không trả về kết quả?
Kiểm tra theo thứ tự:
- Operator đúng chưa?
$inso sánh chính xác — "iPhone 15" không match "iPhone 15 Pro" - Khoảng trắng: Plugin tự động trim, nhưng kiểm tra xem giá trị trong database có khoảng trắng ẩn không
- Kiểu dữ liệu: Với trường số (
integer,number), đảm bảo từ khoá là số hợp lệ — giá trị không parse được sẽ bị loại bỏ - Case sensitivity: Trên PostgreSQL, "iPhone" ≠ "iphone"
URL quá dài khi lọc nhiều từ khoá — lỗi 414?
Plugin tự động xử lý URL dài bằng cách chuyển params vào POST body khi URL vượt 2000 ký tự. Nếu vẫn gặp lỗi:
- Kiểm tra plugin đã được kích hoạt (cần cả client và server)
- Middleware
bodyToQueryMiddlewarephải chạy saubodyParser - Kiểm tra reverse proxy (Nginx) có giới hạn body size — tăng
client_max_body_size
Import Excel bị lỗi "Failed to parse Excel"?
Nguyên nhân có thể:
| Vấn đề | Giải pháp |
|---|---|
| File bị hỏng | Thử mở và lưu lại file bằng Excel |
| File có password | Bỏ mật khẩu bảo vệ |
| Định dạng cũ (.xls) | Chuyển sang .xlsx |
| File quá lớn | Giảm số dòng hoặc chia nhỏ file |
Giá trị số bị sai khi import?
Plugin sử dụng parseInt() cho trường integer/number và parseFloat() cho percent:
"42.7"→42(với integer — mất phần thập phân)"abc"→ bị loại bỏ (NaN)"100%"→ bị loại bỏ (không parse được)
Đảm bảo file Excel chứa giá trị số thuần tuý, không có ký tự đặc biệt.
Hiệu năng
Lọc nhiều từ khoá có chậm không?
Hiệu năng phụ thuộc vào:
| Yếu tố | Ảnh hưởng |
|---|---|
| Số từ khoá | < 100: nhanh, 100–1000: chấp nhận được, > 1000: có thể chậm |
| Kích thước bảng | Bảng lớn + nhiều từ khoá = chậm |
| Index | Trường có index sẽ nhanh hơn nhiều |
| Database engine | PostgreSQL xử lý IN clause tốt hơn MySQL với số lượng lớn |
Khuyến nghị: Tạo index cho các trường thường xuyên sử dụng multi-keyword filter.