static BinaryFieldMapper createQueryBuilderFieldBuilder(BuilderContext context) {
   BinaryFieldMapper.Builder builder = new BinaryFieldMapper.Builder(QUERY_BUILDER_FIELD_NAME);
   builder.docValues(true);
   builder.indexOptions(IndexOptions.NONE);
   builder.store(false);
   builder.fieldType().setDocValuesType(DocValuesType.BINARY);
   return builder.build(context);
 }
 @Override
 public Mapper.Builder parse(String name, Map<String, Object> node, ParserContext parserContext)
     throws MapperParsingException {
   BinaryFieldMapper.Builder builder = binaryField(name);
   parseField(builder, name, node, parserContext);
   for (Map.Entry<String, Object> entry : node.entrySet()) {
     String fieldName = Strings.toUnderscoreCase(entry.getKey());
     Object fieldNode = entry.getValue();
     if (fieldName.equals("compress") && fieldNode != null) {
       builder.compress(nodeBooleanValue(fieldNode));
     } else if (fieldName.equals("compress_threshold") && fieldNode != null) {
       if (fieldNode instanceof Number) {
         builder.compressThreshold(((Number) fieldNode).longValue());
         builder.compress(true);
       } else {
         builder.compressThreshold(
             ByteSizeValue.parseBytesSizeValue(fieldNode.toString()).bytes());
         builder.compress(true);
       }
     }
   }
   return builder;
 }