all repos — searchix @ 24e3fc96ce2c96401155b86c6bfb6a6fb2e322f8

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

feat: improve relevance with compound words Fixes: https://todo.sr.ht/~alanpearce/searchix/8 Fixes: https://todo.sr.ht/~alanpearce/searchix/10

Alan Pearce
commit

24e3fc96ce2c96401155b86c6bfb6a6fb2e322f8

parent

839cd807ccd1c2c2d4048c5a892af19b08e5270a

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

changed files
M internal/index/search.gointernal/index/search.go
@@ -140,16 +140,11 @@ ) (*Result, error) {
query := bleve.NewBooleanQuery() // match the user's query in any field ... - userQuery := bleve.NewMatchQuery(keyword) - userQuery.Analyzer = "option_name" - - userQueryLoc := bleve.NewMatchQuery(keyword) - userQueryLoc.Analyzer = "loc" - userQueryLoc.SetBoost(2) - query.AddMust(bleve.NewDisjunctionQuery( - userQuery, - userQueryLoc, + bleve.NewTermQuery(keyword), + bleve.NewPrefixQuery(keyword), + bleve.NewMatchPhraseQuery(keyword), + bleve.NewMatchQuery(keyword), )) if source != nil {
@@ -166,17 +161,14 @@ }
programsQuery := bleve.NewMatchQuery(keyword) programsQuery.SetField("Programs") - programsQuery.Analyzer = "keyword_single" query.AddShould(programsQuery) attrQuery := bleve.NewMatchQuery(keyword) attrQuery.SetField("Attribute") - attrQuery.Analyzer = "keyword_single" query.AddShould(attrQuery) nameLiteralQuery := bleve.NewMatchQuery(keyword) nameLiteralQuery.SetField("Name") - nameLiteralQuery.Analyzer = "keyword_single" query.AddShould(nameLiteralQuery) search := bleve.NewSearchRequest(query)