// BuildArticleMapping returns a mapping for indexing wikipedia articles // in a manner similar to that done by lucene nightly benchmarks func BuildArticleMapping() *bleve.IndexMapping { // a generic reusable mapping for english text standardJustIndexed := bleve.NewTextFieldMapping() standardJustIndexed.Store = false standardJustIndexed.IncludeInAll = false standardJustIndexed.IncludeTermVectors = false standardJustIndexed.Analyzer = "standard" keywordJustIndexed := bleve.NewTextFieldMapping() keywordJustIndexed.Store = false keywordJustIndexed.IncludeInAll = false keywordJustIndexed.IncludeTermVectors = false keywordJustIndexed.Analyzer = "keyword" articleMapping := bleve.NewDocumentMapping() // title articleMapping.AddFieldMappingsAt("title", keywordJustIndexed) // text articleMapping.AddFieldMappingsAt("text", standardJustIndexed) // _all (disabled) disabledSection := bleve.NewDocumentDisabledMapping() articleMapping.AddSubDocumentMapping("_all", disabledSection) indexMapping := bleve.NewIndexMapping() indexMapping.DefaultMapping = articleMapping indexMapping.DefaultAnalyzer = "standard" return indexMapping }
func buildIndexMapping(language string) *bleve.IndexMapping { txtMapping := bleve.NewTextFieldMapping() txtMapping.Analyzer = language storeFieldOnlyMapping := bleve.NewTextFieldMapping() storeFieldOnlyMapping.Index = false storeFieldOnlyMapping.IncludeTermVectors = false storeFieldOnlyMapping.IncludeInAll = false docMapping := bleve.NewDocumentMapping() docMapping.AddSubDocumentMapping("id", bleve.NewDocumentDisabledMapping()) docMapping.AddFieldMappingsAt("content", txtMapping) docMapping.AddFieldMappingsAt("title", txtMapping) docMapping.AddFieldMappingsAt("data", storeFieldOnlyMapping) mapping := bleve.NewIndexMapping() mapping.AddDocumentMapping("doc", docMapping) mapping.DefaultAnalyzer = language return mapping }