all repos — searchix @ 1328df9c5ca44e903a052c9bfc9a67dd34e25704

Search engine for NixOS, nix-darwin, home-manager and NUR users

feat: promote prefix/exact name/attr matches Fixes: https://todo.sr.ht/~alanpearce/searchix/18

Alan Pearce
commit

1328df9c5ca44e903a052c9bfc9a67dd34e25704

parent

d39204eadf673b6c7ae940203fd75c0805245a96

1 file changed, 23 insertions(+), 4 deletions(-)

changed files
M internal/index/search.gointernal/index/search.go
@@ -128,8 +128,8 @@ query := bleve.NewBooleanQuery()
// match the user's query in any field ... query.AddMust(bleve.NewDisjunctionQuery( - bleve.NewTermQuery(keyword), - bleve.NewPrefixQuery(keyword), + setBoost(bleve.NewTermQuery(keyword), 50), + setBoost(bleve.NewPrefixQuery(keyword), 25), bleve.NewMatchPhraseQuery(keyword), bleve.NewMatchQuery(keyword), ))
@@ -140,12 +140,22 @@ setField(bleve.NewTermQuery(source.Key), "Source"),
) } else { q := bleve.NewDisjunctionQuery( - setBoost(setField(bleve.NewTermQuery("nixpkgs"), "Source"), -150), - setBoost(setField(bleve.NewTermQuery("nur"), "Source"), -200), + setBoost(setField(bleve.NewTermQuery("nixpkgs"), "Source"), -1000), + setBoost(setField(bleve.NewTermQuery("nur"), "Source"), -5000), ) query.AddShould(q) } + + mainProgramQuery := bleve.NewMatchQuery(keyword) + mainProgramQuery.SetField("MainProgram") + mainProgramQuery.SetBoost(50) + query.AddShould(mainProgramQuery) + + mainProgramLiteralQuery := bleve.NewTermQuery(keyword) + mainProgramLiteralQuery.SetField("MainProgram") + mainProgramLiteralQuery.SetBoost(100) + query.AddShould(mainProgramLiteralQuery) programsQuery := bleve.NewMatchQuery(keyword) programsQuery.SetField("Programs")
@@ -215,3 +225,12 @@ }
return nil, err } + +func (index *ReadIndex) Close() error { + err := index.index.Close() + if err != nil { + return errors.WithStack(err) + } + + return nil +}