package org.codelibs.elasticsearch.taste.similarity; import java.util.Map; import org.codelibs.elasticsearch.taste.common.Weighting; import org.codelibs.elasticsearch.taste.exception.TasteException; import org.codelibs.elasticsearch.taste.util.SettingsUtils; public class EuclideanDistanceSimilarityFactory<T> extends AbstractUserSimilarityFactory<T> { protected Weighting weighting; @Override public void init(final Map<String, Object> settings) { super.init(settings); final String value = SettingsUtils.get(settings, "weighting"); if ("WEIGHTED".equalsIgnoreCase(value)) { weighting = Weighting.WEIGHTED; } else { weighting = Weighting.UNWEIGHTED; } } @Override public T create() { try { @SuppressWarnings("unchecked") final T t = (T) new EuclideanDistanceSimilarity(dataModel, weighting); return t; } catch (final Exception e) { throw new TasteException("Failed to create an instance.", e); } } }