From 79449542c5a6ef994b2ba25d8879ba479db906d1 Mon Sep 17 00:00:00 2001 From: Davis Engeler Date: Thu, 4 Apr 2024 23:54:46 -0400 Subject: [PATCH 1/5] Add sort preference for shorter results --- amplify/backend/function/memesrcSearchV2/src/index.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/amplify/backend/function/memesrcSearchV2/src/index.js b/amplify/backend/function/memesrcSearchV2/src/index.js index 6fec2273..17ff6593 100644 --- a/amplify/backend/function/memesrcSearchV2/src/index.js +++ b/amplify/backend/function/memesrcSearchV2/src/index.js @@ -192,7 +192,14 @@ exports.handler = async (event) => { combinedResults = combinedResults.concat(results); } - combinedResults.sort((a, b) => b.score - a.score); + combinedResults.sort((a, b) => { + if (b.score === a.score) { + // If scores are the same, sort by subtitle length in ascending order + return a.subtitle_text.length - b.subtitle_text.length; + } + // If scores are different, sort by score in descending order + return b.score - a.score; + }); combinedResults = combinedResults.slice(0, 150); return { From 0c5b1de5ed875d299ef847c149f81f8ae47dbb39 Mon Sep 17 00:00:00 2001 From: Davis Engeler Date: Fri, 5 Apr 2024 00:04:11 -0400 Subject: [PATCH 2/5] Add scoring for non special character version --- .../function/memesrcSearchV2/src/index.js | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/amplify/backend/function/memesrcSearchV2/src/index.js b/amplify/backend/function/memesrcSearchV2/src/index.js index 17ff6593..73df92e6 100644 --- a/amplify/backend/function/memesrcSearchV2/src/index.js +++ b/amplify/backend/function/memesrcSearchV2/src/index.js @@ -173,14 +173,28 @@ exports.handler = async (event) => { }); const searchTerms = decodedQuery.trim().toLowerCase().split(" "); + const nonSpecialQuery = decodedQuery.replace(/[^a-zA-Z0-9\s]/g, '').toLowerCase(); + const nonSpecialSearchTerms = nonSpecialQuery.split(" "); + let results = []; showObj.forEach((line) => { let score = 0; - if (line.subtitle_text && line.subtitle_text.toLowerCase().includes(decodedQuery)) { + const subtitleText = line.subtitle_text ? line.subtitle_text.toLowerCase() : ''; + const nonSpecialSubtitle = subtitleText.replace(/[^a-zA-Z0-9\s]/g, ''); + + if (subtitleText.includes(decodedQuery)) { score += 10; } + if (nonSpecialSubtitle.includes(nonSpecialQuery)) { + score += 5; + } searchTerms.forEach((term) => { - if (line.subtitle_text && line.subtitle_text.toLowerCase().includes(term)) { + if (subtitleText.includes(term)) { + score += 1; + } + }); + nonSpecialSearchTerms.forEach((term) => { + if (nonSpecialSubtitle.includes(term)) { score += 1; } }); @@ -188,7 +202,7 @@ exports.handler = async (event) => { results.push({ ...line, score, cid: index }); } }); - + combinedResults = combinedResults.concat(results); } From 8490b7b4fbdd11e223e059c6b77cab4866e2c48b Mon Sep 17 00:00:00 2001 From: Davis Engeler Date: Fri, 5 Apr 2024 00:27:41 -0400 Subject: [PATCH 3/5] Add url encoding to search term --- src/pages/V2SearchPage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/V2SearchPage.js b/src/pages/V2SearchPage.js index 99ac3f58..99e4e5d6 100644 --- a/src/pages/V2SearchPage.js +++ b/src/pages/V2SearchPage.js @@ -381,7 +381,7 @@ export default function SearchPage() { setNewResults(null); setLoadingResults(true); setDisplayedResults(RESULTS_PER_PAGE / 2); - const searchTerm = params?.searchTerms.trim().toLowerCase(); + const searchTerm = encodeURIComponent(params?.searchTerms.trim().toLowerCase()); if (searchTerm === "") { console.log("Search term is empty."); return; From c8447a29434bc48c7bf21e94bc1ae21d70e91a5f Mon Sep 17 00:00:00 2001 From: Davis Engeler Date: Fri, 5 Apr 2024 00:29:21 -0400 Subject: [PATCH 4/5] Update patch version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9961c280..3b14867d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "memesrc", "author": "vibehouse.net", "licence": "MIT", - "version": "2.0.0", + "version": "2.0.1", "private": false, "scripts": { "start": "react-scripts start", From 6439813113a7dd4771f2753b70e133d99550cfdc Mon Sep 17 00:00:00 2001 From: Davis Engeler Date: Fri, 5 Apr 2024 00:30:21 -0400 Subject: [PATCH 5/5] Update package-lock.json --- package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9bcd2f05..610ff520 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "memesrc", - "version": "2.0.0", + "version": "2.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "memesrc", - "version": "2.0.0", + "version": "2.0.1", "dependencies": { "@aws-sdk/client-dynamodb": "^3.388.0", "@aws-sdk/util-dynamodb": "^3.388.0",