@@ -142,7 +142,7 @@ func (b *Indexer) addUpdate(ctx context.Context, batchWriter git.WriteCloserErro
142142 return err
143143 }
144144 if size , err = strconv .ParseInt (strings .TrimSpace (stdout ), 10 , 64 ); err != nil {
145- return fmt .Errorf ("Misformatted git cat-file output: %w" , err )
145+ return fmt .Errorf ("misformatted git cat-file output: %w" , err )
146146 }
147147 }
148148
@@ -233,26 +233,26 @@ func (b *Indexer) Delete(_ context.Context, repoID int64) error {
233233
234234// Search searches for files in the specified repo.
235235// Returns the matching file-paths
236- func (b * Indexer ) Search (ctx context.Context , repoIDs [] int64 , language , keyword string , page , pageSize int , isFuzzy bool ) (int64 , []* internal.SearchResult , []* internal.SearchResultLanguages , error ) {
236+ func (b * Indexer ) Search (ctx context.Context , opts * internal. SearchOptions ) (int64 , []* internal.SearchResult , []* internal.SearchResultLanguages , error ) {
237237 var (
238238 indexerQuery query.Query
239239 keywordQuery query.Query
240240 )
241241
242- if isFuzzy {
243- phraseQuery := bleve .NewMatchPhraseQuery (keyword )
242+ if opts . IsKeywordFuzzy {
243+ phraseQuery := bleve .NewMatchPhraseQuery (opts . Keyword )
244244 phraseQuery .FieldVal = "Content"
245245 phraseQuery .Analyzer = repoIndexerAnalyzer
246246 keywordQuery = phraseQuery
247247 } else {
248- prefixQuery := bleve .NewPrefixQuery (keyword )
248+ prefixQuery := bleve .NewPrefixQuery (opts . Keyword )
249249 prefixQuery .FieldVal = "Content"
250250 keywordQuery = prefixQuery
251251 }
252252
253- if len (repoIDs ) > 0 {
254- repoQueries := make ([]query.Query , 0 , len (repoIDs ))
255- for _ , repoID := range repoIDs {
253+ if len (opts . RepoIDs ) > 0 {
254+ repoQueries := make ([]query.Query , 0 , len (opts . RepoIDs ))
255+ for _ , repoID := range opts . RepoIDs {
256256 repoQueries = append (repoQueries , inner_bleve .NumericEqualityQuery (repoID , "RepoID" ))
257257 }
258258
@@ -266,8 +266,8 @@ func (b *Indexer) Search(ctx context.Context, repoIDs []int64, language, keyword
266266
267267 // Save for reuse without language filter
268268 facetQuery := indexerQuery
269- if len (language ) > 0 {
270- languageQuery := bleve .NewMatchQuery (language )
269+ if len (opts . Language ) > 0 {
270+ languageQuery := bleve .NewMatchQuery (opts . Language )
271271 languageQuery .FieldVal = "Language"
272272 languageQuery .Analyzer = analyzer_keyword .Name
273273
@@ -277,12 +277,12 @@ func (b *Indexer) Search(ctx context.Context, repoIDs []int64, language, keyword
277277 )
278278 }
279279
280- from := ( page - 1 ) * pageSize
280+ from , pageSize := opts . GetSkipTake ()
281281 searchRequest := bleve .NewSearchRequestOptions (indexerQuery , pageSize , from , false )
282282 searchRequest .Fields = []string {"Content" , "RepoID" , "Language" , "CommitID" , "UpdatedAt" }
283283 searchRequest .IncludeLocations = true
284284
285- if len (language ) == 0 {
285+ if len (opts . Language ) == 0 {
286286 searchRequest .AddFacet ("languages" , bleve .NewFacetRequest ("Language" , 10 ))
287287 }
288288
@@ -326,7 +326,7 @@ func (b *Indexer) Search(ctx context.Context, repoIDs []int64, language, keyword
326326 }
327327
328328 searchResultLanguages := make ([]* internal.SearchResultLanguages , 0 , 10 )
329- if len (language ) > 0 {
329+ if len (opts . Language ) > 0 {
330330 // Use separate query to go get all language counts
331331 facetRequest := bleve .NewSearchRequestOptions (facetQuery , 1 , 0 , false )
332332 facetRequest .Fields = []string {"Content" , "RepoID" , "Language" , "CommitID" , "UpdatedAt" }
0 commit comments