diff options
| author | FIN-IT_AndriFP <andrifebriyadiputra@gmail.com> | 2026-01-28 11:05:37 +0700 |
|---|---|---|
| committer | FIN-IT_AndriFP <andrifebriyadiputra@gmail.com> | 2026-01-28 11:05:37 +0700 |
| commit | dac398aa33f8e57fd17fc9b115cf435c2d877b19 (patch) | |
| tree | 5e99caa509c557307cf2d1dd692dbf43f6023261 /src/pages/api/shop/search.js | |
| parent | 8ea5e52346fff91462e63e3e881f65a47ffd1354 (diff) | |
fix
Diffstat (limited to 'src/pages/api/shop/search.js')
| -rw-r--r-- | src/pages/api/shop/search.js | 17 |
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'); |
