@Override
 public StringFieldMapper build(BuilderContext context) {
   if (positionOffsetGap > 0) {
     indexAnalyzer = new NamedCustomAnalyzer(indexAnalyzer, positionOffsetGap);
     searchAnalyzer = new NamedCustomAnalyzer(searchAnalyzer, positionOffsetGap);
     searchQuotedAnalyzer = new NamedCustomAnalyzer(searchQuotedAnalyzer, positionOffsetGap);
   }
   // if the field is not analyzed, then by default, we should omit norms and have docs only
   // index options, as probably what the user really wants
   // if they are set explicitly, we will use those values
   if (fieldType.indexed() && !fieldType.tokenized()) {
     if (!omitNormsSet && boost == Defaults.BOOST) {
       fieldType.setOmitNorms(true);
     }
     if (!indexOptionsSet) {
       fieldType.setIndexOptions(IndexOptions.DOCS_ONLY);
     }
   }
   StringFieldMapper fieldMapper =
       new StringFieldMapper(
           buildNames(context),
           boost,
           fieldType,
           nullValue,
           indexAnalyzer,
           searchAnalyzer,
           searchQuotedAnalyzer,
           positionOffsetGap,
           ignoreAbove,
           provider,
           similarity);
   fieldMapper.includeInAll(includeInAll);
   return fieldMapper;
 }