Skip to content

Commit ad9b0bc

Browse files
committed
fix(app-degree-pages): improve the search relevancy by displaying title matches first
1 parent 37434bf commit ad9b0bc

File tree

1 file changed

+42
-4
lines changed

1 file changed

+42
-4
lines changed

packages/app-degree-pages/src/core/services/degree-data-manager-service.js

Lines changed: 42 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,28 @@ function filterData({
4646
!isAccelConcValid(acceleratedConcurrent) ||
4747
row[acceleratedConcurrent.value]?.length > 0;
4848

49-
const filterByKeyword = (resolver, searchTerm) => {
49+
const filterByKeywordTitle = (resolver, searchTerm) => {
5050
if (!searchTerm) return true;
5151
const regex = new RegExp(searchTerm, "i");
52-
return regex.test(resolver.getFullDescription());
52+
const title = regex.test(resolver.getMajorDesc());
53+
if (title){
54+
return true;
55+
}
56+
else{
57+
return false;
58+
}
59+
};
60+
61+
const filterByKeywordDescription = (resolver, searchTerm) => {
62+
if (!searchTerm) return true;
63+
const regex = new RegExp(searchTerm, "i");
64+
const description = regex.test(resolver.getFullDescription());
65+
if (description){
66+
return true;
67+
}
68+
else{
69+
return false;
70+
}
5371
};
5472

5573
const filterByBlacklist = resolver =>
@@ -81,13 +99,33 @@ function filterData({
8199
filterByDepartmentCode(resolver) &&
82100
filterByCampus(resolver) &&
83101
filterByAcceleratedConcurrent(row) &&
84-
filterByKeyword(resolver, keyword) &&
85102
filterByBlacklist(resolver) &&
86103
filterGraduateCerts(resolver)
87104
);
88105
};
89106

90-
return programs.filter(applyFilters);
107+
let filteredByTitle = [];
108+
let filteredByDescription = [];
109+
110+
let newPrograms = programs.filter(degree => {
111+
const resolver = degreeDataPropResolverService(degree);
112+
113+
if(filterByKeywordTitle(resolver, keyword)) {
114+
if (applyFilters(degree)) {
115+
filteredByTitle.push(degree);
116+
}
117+
return false;
118+
}
119+
120+
if(filterByKeywordDescription(resolver, keyword)) {
121+
if (applyFilters(degree)) {
122+
filteredByDescription.push(degree);
123+
}
124+
return false;
125+
}
126+
});
127+
128+
return filteredByTitle.concat(filteredByDescription);
91129
}
92130

93131
/**

0 commit comments

Comments
 (0)