Skip to content

Commit acf44db

Browse files
authored
feat: sort search results by SDK popularity (#12505)
* sort search results by framework/sdk popularity * only add popularity field on sdk docs * upgrade @sentry-internal/global-search version
1 parent 8715c6a commit acf44db

File tree

3 files changed

+39
-5
lines changed

3 files changed

+39
-5
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"@radix-ui/react-toolbar": "^1.1.0",
5353
"@radix-ui/react-tooltip": "^1.1.4",
5454
"@radix-ui/themes": "^3.1.3",
55-
"@sentry-internal/global-search": "^1.1.0",
55+
"@sentry-internal/global-search": "^1.2.0",
5656
"@sentry/nextjs": "9.0.0-alpha.2",
5757
"@types/mdx": "^2.0.9",
5858
"algoliasearch": "^4.23.3",

scripts/algolia.ts

+34
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,39 @@ async function generateAlogliaRecords(pageFrontMatters: FrontMatter[]) {
129129
return records.flat();
130130
}
131131

132+
/**
133+
* Framework popularity ranking map - frameworks listed in order of priority
134+
*/
135+
const frameworkPopularity: Record<string, number> = {
136+
nextjs: 1,
137+
react: 2,
138+
'react-native': 3,
139+
python: 4,
140+
laravel: 5,
141+
node: 6,
142+
vue: 7,
143+
ios: 8,
144+
angular: 9,
145+
nestjs: 10,
146+
django: 11,
147+
spring: 12,
148+
go: 13,
149+
ruby: 14,
150+
kotlin: 15,
151+
dart: 16,
152+
unity: 17,
153+
};
154+
155+
const getPopularity = (sdk: string | undefined, framework: string | undefined) => {
156+
if (sdk && frameworkPopularity[sdk]) {
157+
return frameworkPopularity[sdk];
158+
}
159+
if (framework && frameworkPopularity[framework]) {
160+
return frameworkPopularity[framework];
161+
}
162+
return Number.MAX_SAFE_INTEGER;
163+
};
164+
132165
async function getRecords(pageFm: FrontMatter) {
133166
console.log('processing:', pageFm.slug);
134167

@@ -155,6 +188,7 @@ async function getRecords(pageFm: FrontMatter) {
155188
keywords: pageFm.keywords,
156189
sdk,
157190
framework,
191+
...(!isDeveloperDocs && {popularity: getPopularity(sdk, framework)}),
158192
},
159193
'#main'
160194
);

yarn.lock

+4-4
Original file line numberDiff line numberDiff line change
@@ -3049,10 +3049,10 @@
30493049
dependencies:
30503050
"@sentry/core" "9.0.0-alpha.2"
30513051

3052-
"@sentry-internal/global-search@^1.1.0":
3053-
version "1.1.0"
3054-
resolved "https://registry.yarnpkg.com/@sentry-internal/global-search/-/global-search-1.1.0.tgz#108f11149a2516ea96b8a544fb4f8a0c046288e2"
3055-
integrity sha512-PL2oGOxr0vdnfPwVczs7VuV8bKhypbi1yN13gAT42AxgaSk3joBWzlEzLo7SXK53zBTWVyM2SAyBDzHWXEerJg==
3052+
"@sentry-internal/global-search@^1.2.0":
3053+
version "1.2.0"
3054+
resolved "https://registry.yarnpkg.com/@sentry-internal/global-search/-/global-search-1.2.0.tgz#43d68c9f277b51d9031ed16cb938731f9bf4782c"
3055+
integrity sha512-F1f2Q+kmoXlmUeyRVoKjpk4ZPOyRMnP4FdAIt8kp0zmNWPitQDVn3MzRIoFe70IB9PI3ygKTZHmuJDxHZ+kcHg==
30563056
dependencies:
30573057
"@types/react" ">=16"
30583058
"@types/react-dom" ">=16"

0 commit comments

Comments
 (0)