Java tutorial
/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.search; import java.io.IOException; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.elasticsearch.common.settings.ImmutableSettings; import org.elasticsearch.common.settings.Settings; import org.springframework.stereotype.Component; import com.google.common.base.Predicate; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; /** * Created by IntelliJ IDEA. * User: rmh * Date: 1/16/12 * Time: 10:06 AM */ @Component public class IndexSettingsBuilderImpl extends AbstractElasticsearchSettingsBuilder implements IndexSettingBuilder { public Settings buildIndexSettings() { final ImmutableSettings.Builder settings = ImmutableSettings.settingsBuilder(); final Map<String, String> indexPropertyMap = getIndexPropertyMap(); populateSettings(settings, indexPropertyMap, ELASTICSEARCH_PROPERTIES_PREFIX); settings.loadFromSource(buildAnalyserSettings()); return settings.build(); } private Map<String, String> getIndexPropertyMap() { return configProperties.getSubMap(new Predicate<String>() { @Override public boolean apply(final String input) { return StringUtils.startsWith(input, INDEX_PROPERTIES_PREFIX); } }); } private String buildAnalyserSettings() { try { return jsonBuilder().startObject().startObject("analysis").startObject("analyzer") .startObject("whitespace_analyzer").field("type", "custom").field("tokenizer", "whitespace") .field("filter", new String[] { "lowercase" }).endObject().endObject().endObject().endObject() .string(); } catch (IOException e) { throw new IndexException("Not able to create analyzer settings for index", e); } } }