Skip to content

Commit 29f6d69

Browse files
committed
fix: do not limit the search page result by searchResultLimits
Closes #480
1 parent 416b553 commit 29f6d69

File tree

4 files changed

+18
-12
lines changed

4 files changed

+18
-12
lines changed

docusaurus-search-local/src/client/theme/SearchBar/SearchBar.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,10 @@ import {
3232
useAllContextsWithNoSearchContext,
3333
} from "../../utils/proxiedGenerated";
3434
import LoadingRing from "../LoadingRing/LoadingRing";
35+
import { normalizeContextByPath } from "../../utils/normalizeContextByPath";
36+
import { searchResultLimits } from "../../utils/proxiedGeneratedConstants";
3537

3638
import styles from "./SearchBar.module.css";
37-
import { normalizeContextByPath } from "../../utils/normalizeContextByPath";
3839

3940
async function fetchAutoCompleteJS(): Promise<any> {
4041
const autoCompleteModule = await import("@easyops-cn/autocomplete.js");
@@ -261,7 +262,8 @@ export default function SearchBar({
261262
const result = await searchByWorker(
262263
versionUrl,
263264
searchContext,
264-
input
265+
input,
266+
searchResultLimits
265267
);
266268
callback(result);
267269
},
@@ -432,7 +434,7 @@ export default function SearchBar({
432434
// Manually make the search bar be LTR even if in RTL
433435
dir="ltr"
434436
>
435-
<input
437+
<input
436438
placeholder={translate({
437439
id: "theme.SearchBar.label",
438440
message: "Search",

docusaurus-search-local/src/client/theme/SearchPage/SearchPage.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ function SearchPageContent(): React.ReactElement {
8383
const results = await searchByWorker(
8484
versionUrl,
8585
searchContext,
86-
searchQuery
86+
searchQuery,
87+
100
8788
);
8889
setSearchResults(results);
8990
})();

docusaurus-search-local/src/client/theme/searchByWorker.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ interface RemoteWorker {
66
search(
77
baseUrl: string,
88
searchContext: string,
9-
input: string
9+
input: string,
10+
limit: number
1011
): Promise<SearchResult[]>;
1112
}
1213

@@ -37,11 +38,12 @@ export async function fetchIndexesByWorker(
3738
export async function searchByWorker(
3839
baseUrl: string,
3940
searchContext: string,
40-
input: string
41+
input: string,
42+
limit: number
4143
): Promise<SearchResult[]> {
4244
if (process.env.NODE_ENV === "production") {
4345
const remoteWorker = await getRemoteWorker();
44-
return remoteWorker!.search(baseUrl, searchContext, input);
46+
return remoteWorker!.search(baseUrl, searchContext, input, limit);
4547
}
4648
return [];
4749
}

docusaurus-search-local/src/client/theme/worker.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as Comlink from "comlink";
22
import lunr from "lunr";
3-
import { searchIndexUrl, searchResultLimits, language } from "../utils/proxiedGeneratedConstants";
3+
import { searchIndexUrl, language } from "../utils/proxiedGeneratedConstants";
44
import { tokenize } from "../utils/tokenize";
55
import { smartQueries } from "../utils/smartQueries";
66
import {
@@ -49,7 +49,8 @@ export class SearchWorker {
4949
async search(
5050
baseUrl: string,
5151
searchContext: string,
52-
input: string
52+
input: string,
53+
limit: number
5354
): Promise<SearchResult[]> {
5455
const rawTokens = tokenize(input, language);
5556
if (rawTokens.length === 0) {
@@ -76,15 +77,15 @@ export class SearchWorker {
7677
});
7778
}
7879
})
79-
.slice(0, searchResultLimits)
80+
.slice(0, limit)
8081
// Remove duplicated results.
8182
.filter(
8283
(result) =>
8384
!results.some(
8485
(item) => item.document.i.toString() === result.ref
8586
)
8687
)
87-
.slice(0, searchResultLimits - results.length)
88+
.slice(0, limit - results.length)
8889
.map((result) => {
8990
const document = documents.find(
9091
(doc) => doc.i.toString() === result.ref
@@ -103,7 +104,7 @@ export class SearchWorker {
103104
};
104105
})
105106
);
106-
if (results.length >= searchResultLimits) {
107+
if (results.length >= limit) {
107108
break search;
108109
}
109110
}

0 commit comments

Comments
 (0)