Package fr.inra.lipm.jezlucene

Source Code of fr.inra.lipm.jezlucene.Converter

package fr.inra.lipm.jezlucene;

import java.io.IOException;
import java.util.Map;

import org.apache.lucene.document.Document;
import org.apache.lucene.index.IndexableField;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.node.ArrayNode;
import org.codehaus.jackson.node.ObjectNode;

import com.google.common.collect.Maps;

/**
* @author llegrand
*/
public abstract class Converter {

    public static final String document2JSON(final Iterable<Document> documents) throws JsonGenerationException, JsonMappingException, IOException {
        final ObjectMapper mapper = new ObjectMapper();

        final ArrayNode rootNode = mapper.createArrayNode();
        for (final Document doc : documents) {
            final Map<String, String> fieldUnicity = Maps.newHashMap();
            final ObjectNode docNode = mapper.createObjectNode();
            for (final IndexableField field : doc.getFields()) {
                if (fieldUnicity.containsKey(field.name()) || field.binaryValue() != null) {
                    continue;
                }
                fieldUnicity.put(field.name(), "");
                final String[] value = doc.getValues(field.name());
                if (value.length == 1) {
                    docNode.put(field.name(), value[0]);
                }
                else if (value.length > 1) {
                    final ArrayNode dataArray = mapper.createArrayNode();
                    for (int index = 1; index < value.length; index++) {
                        dataArray.add(value[index]);
                    }
                    docNode.put(field.name(), dataArray);
                }
            }
            rootNode.add(docNode);
        }
        return mapper.writeValueAsString(rootNode);
    }

}
TOP

Related Classes of fr.inra.lipm.jezlucene.Converter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.