Example usage for org.apache.solr.handler.dataimport DataImporter COLUMN

List of usage examples for org.apache.solr.handler.dataimport DataImporter COLUMN

Introduction

In this page you can find the example usage for org.apache.solr.handler.dataimport DataImporter COLUMN.

Prototype

String COLUMN

To view the source code for org.apache.solr.handler.dataimport DataImporter COLUMN.

Click Source Link

Usage

From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.ArrayToStringTransformer.java

License:Apache License

@Override
public Object transformRow(Map<String, Object> row, Context context) {

    for (Map<String, String> map : context.getAllEntityFields()) {

        String column = map.get(DataImporter.COLUMN);
        String source = map.get(ARRAY_SOURCE_DATA_FIELD);

        if (source != null && row.containsKey(source) && row.get(source) != null) {
            try {
                String result = "";
                if (row.get(source) instanceof Object[]) {
                    Object[] array = (Object[]) row.get(source);
                    result = StringUtils.join(array, ", ");
                } else
                    result = row.get(source).toString();
                row.put(column, result);
            } catch (Exception e) {
                LOG.warn(e.toString());/*  w  w  w.j  av a  2  s  . co  m*/
            }
        }
    }
    return row;
}

From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.AuthorFormatingTransformer.java

License:Apache License

@Override
public Object transformRow(Map<String, Object> row, Context context) {
    for (Map<String, String> map : context.getAllEntityFields()) {
        String boolStr = map.get(BOOL_FORMAT_DATA_FIELD);
        String columnField = map.get(DataImporter.COLUMN);
        String srcCol = map.get(SRC_COL);

        if (srcCol == null) {
            srcCol = columnField;// w w w . j  a v  a 2  s. c  o m
        }

        if (boolStr == null || !boolStr.equalsIgnoreCase("true") || row.get(srcCol) == null)
            continue;

        Object currentValueOfTheSourceField = row.get(srcCol);
        List<Object> listOfCurrentValues = new ArrayList<Object>();

        if (currentValueOfTheSourceField == null)
            return row;

        if (currentValueOfTheSourceField instanceof Object[])
            listOfCurrentValues.addAll(Arrays.asList((Object[]) currentValueOfTheSourceField));
        else
            listOfCurrentValues.add(currentValueOfTheSourceField);

        List<String> authors = new ArrayList<String>();
        for (Object value : listOfCurrentValues) {
            if (value instanceof Map<?, ?>) {

                String author = createAuthorString(value);

                if (author.length() > 0)
                    authors.add(author);
            }
        }
        Object[] arrayResult = authors.toArray(new Object[authors.size()]);
        row.put(columnField, arrayResult);
    }

    return row;
}

From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.CategoriesSeparatedTransformer.java

License:Apache License

@SuppressWarnings("unchecked")
@Override//from www.j  a v a 2  s .co  m
public Object transformRow(Map<String, Object> row, Context ctx) {
    context = ctx;

    for (Map<String, String> map : context.getAllEntityFields()) {
        String fileField = map.get(CATEGORIES_FILE_FIELD);
        String splitFieldPrefix = map.get(CATEGORIES_SPLIT_PREFIX_FIELD);

        if (splitFieldPrefix != null && fileField != null) {
            Map<String, String> parentNameValues = initializeNameValues(fileField);
            String[] keys = parentNameValues.keySet().toArray(new String[parentNameValues.size()]);
            Arrays.sort(keys, String.CASE_INSENSITIVE_ORDER);

            String column = map.get(DataImporter.COLUMN);

            Object tmpVal = row.get(column);

            List<Object> values = new ArrayList<Object>();

            if (tmpVal == null)
                return row;
            if (tmpVal instanceof Object[]) {
                values.addAll(Arrays.asList((Object[]) tmpVal));
            } else if (tmpVal instanceof List) {

                values = (List<Object>) tmpVal;
            } else {
                values.add(tmpVal);
            }

            Map<String, List<String>> parentValues = createParentChildValuePairs(parentNameValues, keys,
                    values);

            for (String parent : parentValues.keySet()) {
                List<String> results = parentValues.get(parent);
                Object[] arrayResult = results.toArray(new Object[results.size()]);
                row.put(splitFieldPrefix + parent, arrayResult);
            }
        }
    }
    return row;
}

From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.DateIncompleteFormatTransformer.java

License:Apache License

public Map<String, Object> transformRow(Map<String, Object> row, Context context) {

    for (Map<String, String> map : context.getAllEntityFields()) {

        String column = map.get(DataImporter.COLUMN);
        String startEnd = map.get(DATE_TIME_PARSE);
        String srcCol = map.get(SRC_COL_NAME);
        String dateRegex = map.get(DATE_INCOMPLETE_REGEX);

        if (startEnd == null || dateRegex == null)
            continue;
        if (!startEnd.equals(DATE_END) && !startEnd.equals(DATE_START))
            throw new IllegalArgumentException(DATE_TIME_PARSE + " muss be " + DATE_END + " or " + DATE_START
                    + "(Current value " + startEnd + ")");

        srcCol = srcCol == null ? column : srcCol;

        try {/*w w w  .  ja va  2  s  . com*/
            Object currentRowValue = row.get(srcCol);
            if (currentRowValue instanceof Object[]) {
                List<Object> values = new ArrayList<Object>();
                values.addAll(Arrays.asList((Object[]) currentRowValue));

                List<Date> results = new ArrayList<Date>();
                for (Object input : values) {
                    results.add(process(input, startEnd, dateRegex));
                }
                row.put(column, results);
            } else {
                if (currentRowValue != null) {
                    row.put(column, process(currentRowValue, startEnd, dateRegex));
                }
            }
        } catch (Exception e) {
            LOG.warn(e.getMessage());
        }
    }
    return row;
}

From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.DateToStringTransformer.java

License:Apache License

@Override
public Object transformRow(Map<String, Object> row, Context context) {

    for (Map<String, String> map : context.getAllEntityFields()) {

        String column = map.get(DataImporter.COLUMN);
        String pattern = map.get(FORMATING_PATTERN);
        String srcField = map.get(SRC_COL);
        String localeString = map.get(LOCALE_FIELD);
        Locale convertingLocale;//  w  w  w .  jav a 2  s .co m

        if (pattern == null) {
            continue;
        }
        if (srcField == null) {
            srcField = column;
        }

        if (localeString == null) {
            convertingLocale = Locale.getDefault();
        } else {
            convertingLocale = new Locale(localeString);
        }

        Object columnContent = row.get(srcField);
        if (columnContent instanceof Date) {
            row.put(column, new SimpleDateFormat(pattern, convertingLocale).format((Date) columnContent));
        }
    }
    return row;
}

From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.DictToStringTransformer.java

License:Apache License

@Override
public Object transformRow(Map<String, Object> row, Context context) {
    for (Map<String, String> map : context.getAllEntityFields()) {

        String formatPatternString = map.get(FORMAT_DATA_FIELD);
        String targetField = map.get(DataImporter.COLUMN);
        String sourceField = map.get(SOURCE);

        if (sourceField == null)
            sourceField = targetField;// w  ww . ja v a2  s . com

        Object origData = row.get(sourceField);

        if (formatPatternString == null || origData == null)
            continue;

        List<Object> values = new ArrayList<Object>();
        if (origData instanceof Object[])
            values.addAll(Arrays.asList((Object[]) origData));
        else
            values.add(origData);

        String[] formatPattern = formatPatternString.split("[\\{\\}]");
        List<String> formatedData = new ArrayList<String>();
        for (Object value : values) {

            if (value instanceof Map<?, ?>) {
                addStringToFormatedList(formatedData, formatPattern, value);
            }
        }
        Object[] arrayResult = formatedData.toArray(new Object[formatedData.size()]);
        row.put(targetField, arrayResult);
    }
    return row;
}

From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.ExcludeValuesTransformer.java

License:Apache License

@Override
public Object transformRow(Map<String, Object> row, Context ctx) {

    context = ctx;/*from w w w. jav a2  s. c  o m*/

    for (Map<String, String> map : context.getAllEntityFields()) {
        String idField = map.get(EXCLUDE_FIELD);
        String column = map.get(DataImporter.COLUMN);
        String srcCol = map.get(SRC_COL_NAME);

        srcCol = srcCol == null ? column : srcCol;

        if (idField != null) {
            CharArraySet excludeValues = null;
            try {
                excludeValues = initializeExcludeValues(idField);
            } catch (IOException e) {
                wrapAndThrow(SEVERE, e);
            }

            Object currentRowValue = row.get(srcCol);

            if (currentRowValue == null)
                return row;

            if (currentRowValue instanceof Object[]) {

                putNotExcludedArrayValues(row, column, excludeValues, currentRowValue);

            } else {

                if (excludeValues.contains(currentRowValue)) {
                    row.put(column, null);
                } else {
                    row.put(column, currentRowValue);
                }
            }
        }
    }
    return row;
}

From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.FilePathTransformer.java

License:Apache License

@Override
public Object transformRow(Map<String, Object> row, Context context) {
    for (Map<String, String> map : context.getAllEntityFields()) {
        String column = map.get(DataImporter.COLUMN);
        String pathPrefix = map.get(PATH_PREFIX_FIELD);
        String targetColumn = map.get(TARGET_COLUMN_FIELD);
        String suffix = map.get(SUFFIX_FIELD);
        String oldSuffix = map.get(OLD_SUFFIX_FIELD);
        String fileCol = map.get(FILE_NAME_COLUMN);

        fileCol = fileCol == null ? column : fileCol;

        if (pathPrefix == null || row.get(fileCol) == null)
            continue;

        String fileName = row.get(fileCol).toString();

        if (oldSuffix != null && !oldSuffix.equalsIgnoreCase("")) {
            fileName = fileName.replaceAll(oldSuffix + "[ \t]*$", suffix);
        } else if (suffix != null) {
            fileName += suffix;//from w ww .  ja v a  2s .  c  o m
        }

        pathPrefix = pathPrefix.trim();
        fileName = fileName.trim();
        if (pathPrefix != "" && !pathPrefix.endsWith("/"))
            pathPrefix += "/";
        if (targetColumn == null)
            row.put(column, pathPrefix + fileName);
        else
            row.put(targetColumn, pathPrefix + fileName);
        LOG.info(pathPrefix + fileName);

    }
    return row;
}

From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.FormatingStringTransformer.java

License:Apache License

@Override
public Object transformRow(Map<String, Object> row, Context context) {
    for (Map<String, String> map : context.getAllEntityFields()) {

        String formatPatternString = map.get(FORMAT_DATA_FIELD);
        String sourceField = map.get(SOURCE);
        String targetField = map.get(DataImporter.COLUMN);

        if (sourceField == null)
            sourceField = targetField;//from w w w.  j a  v a 2s.c  o  m

        Object origData = row.get(sourceField);

        if (formatPatternString == null || origData == null)
            continue;

        List<Object> values = new ArrayList<Object>();
        if (origData instanceof Object[])
            values.addAll(Arrays.asList((Object[]) origData));
        else
            values.add(origData);

        List<String> formatedData = new ArrayList<String>();
        for (Object value : values) {
            String formatedEntry = formatPatternString.replaceAll("\\{\\*}", value.toString());
            if (formatedEntry.length() > 0)
                formatedData.add(formatedEntry);
        }
        Object[] arrayResult = formatedData.toArray(new Object[formatedData.size()]);
        row.put(targetField, arrayResult);
    }
    return row;
}

From source file:de.dlr.knowledgefinder.dataimport.utils.transformer.IntToDateTransformer.java

License:Apache License

@Override
public Object transformRow(Map<String, Object> row, Context context) {

    for (Map<String, String> map : context.getAllEntityFields()) {

        String column = map.get(DataImporter.COLUMN);
        String boolStr = map.get(BOOL_CONVERT_DATA_FIELD);

        if (boolStr == null || !boolStr.equalsIgnoreCase("true") || row.get(column) == null)
            continue;

        try {/*  w w w  . j a  v  a 2 s .  c  o  m*/
            int dateInSeconds = Integer.parseInt(row.get(column).toString());
            Date transformedDate = new Date(dateInSeconds * secondToMilisecondMultiplier);
            row.put(column, transformedDate);
        } catch (Exception e) {
            LOG.warn(e.getMessage());
        }
    }
    return row;
}