From 4e634a9d3556e94c7ce0729ef9f15b73495b2e28 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Wed, 15 Mar 2023 14:52:16 +0700 Subject: product detail desktop --- src/pages/api/shop/search.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/pages/api') diff --git a/src/pages/api/shop/search.js b/src/pages/api/shop/search.js index c1e00d16..3d6b3f26 100644 --- a/src/pages/api/shop/search.js +++ b/src/pages/api/shop/search.js @@ -46,7 +46,9 @@ export default async function handler(req, res) { category = '', priceFrom = 0, priceTo = 0, - orderBy = '' + orderBy = '', + operation = 'AND', + fq = '' } = req.query let paramOrderBy = '' @@ -68,13 +70,13 @@ export default async function handler(req, res) { let limit = 30 let offset = (page - 1) * limit let parameter = [ - `facet.query=${q}`, + 'facet.field=brand_str', + 'facet.field=category_name_str', 'facet=true', 'indent=true', - 'q.op=AND', + `facet.query=${q}`, + `q.op=${operation}`, `q=${q}`, - 'facet.field=brand_str', - 'facet.field=category_name_str', `start=${offset}`, `rows=${limit}`, `sort=product_rating DESC ${paramOrderBy}`, @@ -84,6 +86,11 @@ export default async function handler(req, res) { if (brand) parameter.push(`fq=brand:${brand}`) if (category) parameter.push(`fq=category_name:${category}`) + // Single fq in url params + if (typeof fq === 'string') parameter.push(`fq=${fq}`) + // Multi fq in url params + if (Array.isArray(fq)) parameter = parameter.concat(fq.map((val) => `fq=${val}`)) + let result = await axios(process.env.SOLR_HOST + '/solr/products/select?' + parameter.join('&')) try { result.data.response.products = productResponseMap(result.data.response.docs) -- cgit v1.2.3