Search in sources :

Example 1 with FieldDiff

use of de.tblsoft.solr.pipeline.bean.FieldDiff in project solr-cmd-utils by tblsoft.

the class DocumentDiffer method compare.

public static DocumentDiff compare(Document d1, Document d2) {
    DocumentDiff diff = new DocumentDiff();
    for (Field field : d1.getFields()) {
        List<String> values1 = field.getValues();
        List<String> values2 = d2.getFieldValues(field.getName());
        d2.deleteField(field.getName());
        FieldDiff.DiffType changeType = getChangeType(values1, values2);
        FieldDiff fieldDiff = new FieldDiff();
        fieldDiff.setDiffType(changeType);
        if (!changeType.equals(FieldDiff.DiffType.EQUAL)) {
            fieldDiff.setOldValues(values1);
            fieldDiff.setNewValue(values2);
            diff.getFieldDiffs().add(fieldDiff);
        }
    }
    for (Field field : d2.getFields()) {
        FieldDiff fieldDiff = new FieldDiff();
        fieldDiff.setDiffType(FieldDiff.DiffType.CREATE);
        fieldDiff.setNewValue(field.getValues());
        diff.getFieldDiffs().add(fieldDiff);
    }
    return diff;
}
Also used : Field(de.tblsoft.solr.pipeline.bean.Field) DocumentDiff(de.tblsoft.solr.pipeline.bean.DocumentDiff) FieldDiff(de.tblsoft.solr.pipeline.bean.FieldDiff)

Aggregations

DocumentDiff (de.tblsoft.solr.pipeline.bean.DocumentDiff)1 Field (de.tblsoft.solr.pipeline.bean.Field)1 FieldDiff (de.tblsoft.solr.pipeline.bean.FieldDiff)1