fix: keep names_with_underscores as single tokens Fixes: https://codeberg.org/alanpearce/searchix/issues/2
1 file changed, 18 insertions(+), 3 deletions(-)
changed files
M internal/index/indexer.go → internal/index/indexer.go
@@ -13,6 +13,7 @@ "slices" "go.alanpearce.eu/searchix/internal/config" "go.alanpearce.eu/searchix/internal/file" + "go.alanpearce.eu/searchix/internal/index/nixattr" "go.alanpearce.eu/searchix/internal/nix" "go.alanpearce.eu/x/log" "go.uber.org/zap"@@ -81,7 +82,7 @@ err = indexMapping.AddCustomAnalyzer("c_name", map[string]any{ "type": custom.Name, "tokenizer": unicode.Name, "token_filters": []string{ - camelcase.Name, + nixattr.Name, "ngram", }, })@@ -101,8 +102,22 @@ if err != nil { return nil, errors.WithMessage(err, "could not add custom analyser") } + err = indexMapping.AddCustomAnalyzer("dotted_keyword", map[string]any{ + "type": custom.Name, + "tokenizer": unicode.Name, + "token_filters": []string{ + nixattr.Name, + }, + }) + if err != nil { + return nil, errors.WithMessage(err, "could not add custom analyser") + } + identityFieldMapping := bleve.NewKeywordFieldMapping() + attributeFieldMapping := bleve.NewKeywordFieldMapping() + attributeFieldMapping.Analyzer = "dotted_keyword" + keywordFieldMapping := bleve.NewKeywordFieldMapping() keywordFieldMapping.Analyzer = simple.Name@@ -122,7 +137,7 @@ locFieldMapping.Store = false optionMapping := bleve.NewDocumentStaticMapping() - optionMapping.AddFieldMappingsAt("Name", identityFieldMapping) + optionMapping.AddFieldMappingsAt("Name", attributeFieldMapping) optionMapping.AddFieldMappingsAt("NameNGram", nameNGramMapping) optionMapping.AddFieldMappingsAt("Source", identityFieldMapping) optionMapping.AddFieldMappingsAt("Loc", locFieldMapping)@@ -136,7 +151,7 @@ packageMapping := bleve.NewDocumentStaticMapping() packageMapping.AddFieldMappingsAt("Name", keywordFieldMapping) packageMapping.AddFieldMappingsAt("NameNGram", nameNGramMapping) - packageMapping.AddFieldMappingsAt("Attribute", keywordFieldMapping) + packageMapping.AddFieldMappingsAt("Attribute", attributeFieldMapping) packageMapping.AddFieldMappingsAt("AttributeNGram", nameNGramMapping) packageMapping.AddFieldMappingsAt("Source", keywordFieldMapping) packageMapping.AddFieldMappingsAt("Description", descriptionFieldMapping)