summaryrefslogtreecommitdiff
path: root/src/pages/api/shop/search.js
diff options
context:
space:
mode:
authorFIN-IT_AndriFP <andrifebriyadiputra@gmail.com>2026-01-28 11:05:37 +0700
committerFIN-IT_AndriFP <andrifebriyadiputra@gmail.com>2026-01-28 11:05:37 +0700
commitdac398aa33f8e57fd17fc9b115cf435c2d877b19 (patch)
tree5e99caa509c557307cf2d1dd692dbf43f6023261 /src/pages/api/shop/search.js
parent8ea5e52346fff91462e63e3e881f65a47ffd1354 (diff)
fix
Diffstat (limited to 'src/pages/api/shop/search.js')
-rw-r--r--src/pages/api/shop/search.js17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/pages/api/shop/search.js b/src/pages/api/shop/search.js
index 37cfa1bd..89d75cd0 100644
--- a/src/pages/api/shop/search.js
+++ b/src/pages/api/shop/search.js
@@ -35,11 +35,14 @@ export default async function handler(req, res) {
try {
let qCompare = q === '*' ? '*:*' : q;
- // Sanitasi Query
if (qCompare !== '*:*') {
- // Kita escape, tapi biarkan stringnya bersih (jangan ditambah wildcard * manual)
- // karena kita serahkan ke 'edismax' parser
qCompare = escapeSolrQuery(qCompare);
+ qCompare = qCompare.split(/\s+/).map(term => {
+ if (term && !term.includes('*')) {
+ return term + '*';
+ }
+ return term;
+ }).join(' ');
}
// [SOLUSI] Gunakan URLSearchParams untuk menyusun URL dengan aman
@@ -59,8 +62,12 @@ export default async function handler(req, res) {
// 3. display_name_s^1 : Cadangan
params.append('qf', 'default_code_s^20 search_keywords_t^10 display_name_s^1');
- // Minimum Match 100% (Semua kata harus ada), ubah jika ingin lebih longgar
- params.append('mm', '100%');
+ const compareWords = qCompare.split(/\s+/).filter(w => w.length > 0);
+ let compareMm = '100%';
+ if (compareWords.length >= 3) {
+ compareMm = '75%';
+ }
+ params.append('mm', compareMm);
if (group === 'false') {
params.append('group', 'false');