package main import ( "github.com/blevesearch/bleve" "github.com/blevesearch/bleve/analysis/analyzers/keyword_analyzer" "github.com/blevesearch/bleve/analysis/analyzers/simple_analyzer" "github.com/blevesearch/bleve/analysis/language/fr" ) func buildAlbumMapping() *bleve.IndexMapping { simpleMapping := bleve.NewTextFieldMapping() simpleMapping.Analyzer = simple_analyzer.Name frenchTextMapping := bleve.NewTextFieldMapping() frenchTextMapping.Analyzer = fr.AnalyzerName keywordFieldMapping := bleve.NewTextFieldMapping() keywordFieldMapping.Analyzer = keyword_analyzer.Name keywordFieldMapping.IncludeInAll = false numericDisabled := bleve.NewNumericFieldMapping() numericDisabled.Index = false numericDisabled.Store = false numericDisabled.IncludeInAll = false textDisabled := bleve.NewTextFieldMapping() textDisabled.Index = false textDisabled.Store = false textDisabled.IncludeInAll = false dateDisabled := bleve.NewDateTimeFieldMapping() dateDisabled.Index = false dateDisabled.Store = false dateDisabled.IncludeInAll = false albumMapping := bleve.NewDocumentStaticMapping() albumMapping.AddFieldMappingsAt("ID", numericDisabled) albumMapping.AddFieldMappingsAt("ISBN", keywordFieldMapping) albumMapping.AddFieldMappingsAt("Series", frenchTextMapping) albumMapping.AddFieldMappingsAt("Title", frenchTextMapping) albumMapping.AddFieldMappingsAt("Num", numericDisabled) albumMapping.AddFieldMappingsAt("NumA", textDisabled) albumMapping.AddFieldMappingsAt("State", numericDisabled) albumMapping.AddFieldMappingsAt("Editor", simpleMapping) albumMapping.AddFieldMappingsAt("Collection", frenchTextMapping) albumMapping.AddFieldMappingsAt("SatID", keywordFieldMapping) albumMapping.AddFieldMappingsAt("Description", frenchTextMapping) albumMapping.AddFieldMappingsAt("LegalDeposit", dateDisabled) albumMapping.AddFieldMappingsAt("PrintDate", dateDisabled) albumMapping.AddFieldMappingsAt("PurchaseDate", dateDisabled) albumMapping.AddFieldMappingsAt("CoverURL", dateDisabled) albumMapping.AddFieldMappingsAt("Note", bleve.NewNumericFieldMapping()) albumMapping.AddFieldMappingsAt("Scenarists", simpleMapping) albumMapping.AddFieldMappingsAt("Designers", simpleMapping) albumMapping.AddFieldMappingsAt("Colorists", simpleMapping) albumMapping.AddFieldMappingsAt("Colorists", textDisabled) albumMapping.AddFieldMappingsAt("FetchDate", dateDisabled) indexMapping := bleve.NewIndexMapping() indexMapping.AddDocumentMapping("album", albumMapping) return indexMapping }