@@ -386,7 +386,7 @@ function searchFlexIndex(query: string, limit: number): EnrichedHit[] {
386386
387387function mergeSearchHits ( hits : EnrichedHit [ ] , limit : number , query : string ) {
388388 const seen = new Set < number > ( ) ;
389- const results : { title : string ; excerpt : string ; href : string ; project : string } [ ] = [ ] ;
389+ const results : { title : string ; excerpt : string ; href : string ; project : string ; projectId : string } [ ] = [ ] ;
390390
391391 for ( const bucket of hits ) {
392392 for ( const item of bucket . result ) {
@@ -398,6 +398,7 @@ function mergeSearchHits(hits: EnrichedHit[], limit: number, query: string) {
398398 excerpt : buildExcerpt ( doc . content , query ) ,
399399 href : doc . href ,
400400 project : doc . project ,
401+ projectId : doc . projectId ,
401402 } ) ;
402403 if ( results . length >= limit ) return results ;
403404 }
@@ -406,7 +407,7 @@ function mergeSearchHits(hits: EnrichedHit[], limit: number, query: string) {
406407 return results ;
407408}
408409
409- export async function searchDocs ( query : string ) {
410+ export async function searchDocs ( query : string , projectId ?: string ) {
410411 const docs = await fetchSearchIndex ( ) ;
411412 const normalizedQuery = normalizeSearchQuery ( query ) ;
412413 if ( ! docs . length || ! flexIndex || ! normalizedQuery ) return [ ] ;
@@ -423,6 +424,10 @@ export async function searchDocs(query: string) {
423424 }
424425 }
425426
427+ if ( projectId ) {
428+ results = results . filter ( r => r . projectId === projectId ) ;
429+ }
430+
426431 return results ;
427432}
428433
0 commit comments