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

2 files changed, 17 insertions(+), 7 deletions(-)

jump to
M internal/index/indexer.gointernal/index/indexer.go
@@ -138,10 +138,10 @@ packageMapping.AddFieldMappingsAt("Attribute", nameMapping)
packageMapping.AddFieldMappingsAt("Source", keywordFieldMapping) packageMapping.AddFieldMappingsAt("Description", descriptionFieldMapping) packageMapping.AddFieldMappingsAt("Homepages", keywordFieldMapping) - packageMapping.AddFieldMappingsAt("MainProgram", keywordFieldMapping) - packageMapping.AddFieldMappingsAt("PackageSet", keywordFieldMapping) - packageMapping.AddFieldMappingsAt("Platforms", keywordFieldMapping) - packageMapping.AddFieldMappingsAt("Programs", keywordFieldMapping) + packageMapping.AddFieldMappingsAt("MainProgram", identityFieldMapping) + packageMapping.AddFieldMappingsAt("PackageSet", identityFieldMapping) + packageMapping.AddFieldMappingsAt("Platforms", identityFieldMapping) + packageMapping.AddFieldMappingsAt("Programs", identityFieldMapping) indexMapping.AddDocumentMapping("option", optionMapping) indexMapping.AddDocumentMapping("package", packageMapping)
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