@Override
 public void checkCompatibility(
     MappedFieldType fieldType, List<String> conflicts, boolean strict) {
   super.checkCompatibility(fieldType, conflicts, strict);
   CompletionFieldType other = (CompletionFieldType) fieldType;
   if (analyzingSuggestLookupProvider.hasPayloads()
       != other.analyzingSuggestLookupProvider.hasPayloads()) {
     conflicts.add("mapper [" + names().fullName() + "] has different payload values");
   }
   if (analyzingSuggestLookupProvider.getPreservePositionsIncrements()
       != other.analyzingSuggestLookupProvider.getPreservePositionsIncrements()) {
     conflicts.add(
         "mapper ["
             + names().fullName()
             + "] has different 'preserve_position_increments' values");
   }
   if (analyzingSuggestLookupProvider.getPreserveSep()
       != other.analyzingSuggestLookupProvider.getPreserveSep()) {
     conflicts.add(
         "mapper [" + names().fullName() + "] has different 'preserve_separators' values");
   }
   if (!ContextMapping.mappingsAreEqual(getContextMapping(), other.getContextMapping())) {
     conflicts.add("mapper [" + names().fullName() + "] has different 'context_mapping' values");
   }
 }
 @Override
 public CompletionFieldMapper build(Mapper.BuilderContext context) {
   setupFieldType(context);
   CompletionFieldType completionFieldType = (CompletionFieldType) fieldType;
   completionFieldType.setProvider(
       new AnalyzingCompletionLookupProvider(
           preserveSeparators, false, preservePositionIncrements, payloads));
   completionFieldType.setContextMapping(contextMapping);
   return new CompletionFieldMapper(
       fieldType,
       maxInputLength,
       context.indexSettings(),
       multiFieldsBuilder.build(this, context),
       copyTo);
 }
 static {
   FIELD_TYPE.setOmitNorms(true);
   FIELD_TYPE.freeze();
 }