feat: add 'parents' facet to options
4 files changed, 7 insertions(+), 0 deletions(-)
M internal/importer/options.go → internal/importer/options.go
@@ -4,6 +4,7 @@ import ( "context" "io" "reflect" + "strings" "time" "alin.ovh/x/log"@@ -180,6 +181,7 @@ Description: nix.Markdown(i.optJSON.Description), Example: i.convertDocsValue(i.optJSON.Example), RelatedPackages: nix.Markdown(i.optJSON.RelatedPackages), Loc: i.optJSON.Loc, + Parents: strings.Join(i.optJSON.Loc[:len(i.optJSON.Loc)-1], "."), Type: i.optJSON.Type, ImportedAt: time.Now(), }
M internal/index/indexer.go → internal/index/indexer.go
@@ -146,6 +146,7 @@ nameNGramMapping, ) optionMapping.AddFieldMappingsAt("Source", identityFieldMapping) optionMapping.AddFieldMappingsAt("Loc", locFieldMapping) + optionMapping.AddFieldMappingsAt("Parents", locFieldMapping) optionMapping.AddFieldMappingsAt("RelatedPackages", textFieldMapping) optionMapping.AddFieldMappingsAt("Description", descriptionFieldMapping)
M internal/index/search.go → internal/index/search.go
@@ -253,6 +253,9 @@ if source == nil || source.Importer == config.Packages { search.AddFacet("Package set", bleve.NewFacetRequest("PackageSet", 10)) search.AddFacet("Platform", bleve.NewFacetRequest("Platforms", 10)) } + if source == nil || source.Importer == config.Options { + search.AddFacet("Option set", bleve.NewFacetRequest("Parents", 10)) + } if from != 0 { search.From = from
M internal/nix/option.go → internal/nix/option.go
@@ -30,6 +30,7 @@ Default *Docs `json:",omitempty"` Description Markdown Example *Docs `json:",omitempty"` Loc []string + Parents string RelatedPackages Markdown `json:",omitempty"` Type string ImportedAt time.Time `storm:"index"`