diff --git a/src/components/Search/SearchInput/SearchInput.tsx b/src/components/Search/SearchInput/SearchInput.tsx index e784358..deb452f 100644 --- a/src/components/Search/SearchInput/SearchInput.tsx +++ b/src/components/Search/SearchInput/SearchInput.tsx @@ -7,7 +7,7 @@ import { faMagnifyingGlass } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { useGenerateSearchEntries } from '../../../Hooks/useGenerateSearchEntries'; -import { getSearchScoreV2TS } from '../getSearchScoreV2'; +import { getSearchScoreV2TS } from '../getSearchScore'; export const SearchInput = (props: ISearchInput): JSX.Element => { const { summary, setSearchHits, setSearchInput, searchInput } = props; diff --git a/src/components/Search/getSearchScoreV2.ts b/src/components/Search/getSearchScore.ts similarity index 91% rename from src/components/Search/getSearchScoreV2.ts rename to src/components/Search/getSearchScore.ts index 00ed2b5..34c2fc8 100644 --- a/src/components/Search/getSearchScoreV2.ts +++ b/src/components/Search/getSearchScore.ts @@ -28,15 +28,17 @@ export const getSearchScoreV2TS = ( specification.features.forEach((feature) => { const normalizedFeature = normalizeString(feature.id); + const featureScore = featureSearchScore( searchTerm, normalizedFeature ); - score += featureScore; featureScores.push({ id: feature.id, score: featureScore, }); + + score += featureScore; }); const sortedFeatureScores = featureScores.sort(sortScore); @@ -53,8 +55,7 @@ export const getSearchScoreV2TS = ( return chosen; }; -const getTop25 = (sortedScores: IScore[]) => - sortedScores.filter((score) => score.score > 0).slice(0, 25); +const getTop25 = (sortedScores: IScore[]) => sortedScores.slice(0, 25); const sortScore = ( scoreA: IScore | IFeatureScore, @@ -67,17 +68,11 @@ const normalizeString = (term: string) => { const getSearchWordsScore = (searchWords: string[], searchTerm: string) => { let searchWordsScore = 0; - if (searchWords.length > 1) { - searchWords.forEach((word) => { - if (word.length === 0) { - searchWordsScore += 0; - } - - if (word.includes(searchTerm)) { - searchWordsScore += 0.25; - } - }); - } + searchWords.forEach((word) => { + if (word.includes(searchTerm)) { + searchWordsScore += 0.25; + } + }); return searchWordsScore; }; @@ -171,6 +166,7 @@ const removeFillWords = (sentence: string) => const fillWords = [ 'the', 'a', + 'an', 'of', 'and', 'or', @@ -191,7 +187,6 @@ const fillWords = [ 'with', 'by', 'for', - 'an', ]; const replaceCharSet = ['.', '`', ',', '"', '?', '_'];