all repos — searchix @ c2bbda87df1c708dc8437ef49b296c11ba251355

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

fix: prioritise exact attribute matches above all

Alan Pearce
commit

c2bbda87df1c708dc8437ef49b296c11ba251355

parent

e699eaa3f57b7c67825aa9d1c507e03254f422be

1 file changed, 13 insertions(+), 3 deletions(-)

changed files
M internal/index/search.gointernal/index/search.go
@@ -149,12 +149,12 @@ }
mainProgramQuery := bleve.NewMatchQuery(keyword) mainProgramQuery.SetField("MainProgram") - mainProgramQuery.SetBoost(50) + mainProgramQuery.SetBoost(10) query.AddShould(mainProgramQuery) mainProgramLiteralQuery := bleve.NewTermQuery(keyword) mainProgramLiteralQuery.SetField("MainProgram") - mainProgramLiteralQuery.SetBoost(100) + mainProgramLiteralQuery.SetBoost(50) query.AddShould(mainProgramLiteralQuery) programsQuery := bleve.NewMatchQuery(keyword)
@@ -164,7 +164,7 @@ query.AddShould(programsQuery)
programsLiteralQuery := bleve.NewTermQuery(keyword) programsLiteralQuery.SetField("Programs") - programsLiteralQuery.SetBoost(50) + programsLiteralQuery.SetBoost(100) query.AddShould(programsLiteralQuery) attrQuery := bleve.NewMatchQuery(keyword)
@@ -177,6 +177,11 @@ attrPrefixQuery.SetField("Attribute")
attrPrefixQuery.SetBoost(10) query.AddShould(attrPrefixQuery) + attrTermQuery := bleve.NewTermQuery(keyword) + attrTermQuery.SetField("Attribute") + attrTermQuery.SetBoost(600) + query.AddShould(attrTermQuery) + nameQuery := bleve.NewMatchQuery(keyword) nameQuery.SetField("Name") nameQuery.SetBoost(2)
@@ -186,6 +191,11 @@ namePrefixQuery := bleve.NewPrefixQuery(keyword)
namePrefixQuery.SetField("Name") namePrefixQuery.SetBoost(10) query.AddShould(namePrefixQuery) + + nameTermQuery := bleve.NewTermQuery(keyword) + nameTermQuery.SetField("Name") + nameTermQuery.SetBoost(100) + query.AddShould(nameTermQuery) search := bleve.NewSearchRequest(query) search.Explain = config.DevMode