From 4d607bdd4a8f7cb62bf18bfb7b1c48ae01c15204 Mon Sep 17 00:00:00 2001 From: Shay Banon Date: Thu, 17 Nov 2011 18:19:16 +0200 Subject: [PATCH] handle valueForString in binary case --- .../index/mapper/core/BinaryFieldMapper.java | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/BinaryFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/BinaryFieldMapper.java index 57131b0bb32..e787e6e6646 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/BinaryFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/BinaryFieldMapper.java @@ -19,16 +19,10 @@ package org.elasticsearch.index.mapper.core; -import static org.elasticsearch.common.xcontent.support.XContentMapValues.nodeBooleanValue; -import static org.elasticsearch.index.mapper.MapperBuilders.*; -import static org.elasticsearch.index.mapper.core.TypeParsers.*; - -import java.io.IOException; -import java.util.Map; - import org.apache.lucene.document.Field; import org.apache.lucene.document.Fieldable; import org.elasticsearch.ElasticSearchParseException; +import org.elasticsearch.common.Base64; import org.elasticsearch.common.Strings; import org.elasticsearch.common.compress.lzf.LZF; import org.elasticsearch.common.compress.lzf.LZFDecoder; @@ -43,6 +37,13 @@ import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; import org.elasticsearch.index.mapper.ParseContext; +import java.io.IOException; +import java.util.Map; + +import static org.elasticsearch.common.xcontent.support.XContentMapValues.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; + /** * @author kimchy (shay.banon) */ @@ -135,7 +136,12 @@ public class BinaryFieldMapper extends AbstractFieldMapper { } @Override public byte[] valueFromString(String value) { - return null; + // assume its base64 (json) + try { + return Base64.decode(value); + } catch (Exception e) { + return null; + } } @Override public String valueAsString(Fieldable field) {