Package com.mozilla.grouperfish.services.elasticsearch

Source Code of com.mozilla.grouperfish.services.elasticsearch.ElasticSearchIndexProvider

package com.mozilla.grouperfish.services.elasticsearch;

import java.util.Properties;

import org.elasticsearch.client.Client;
import org.elasticsearch.node.Node;
import org.elasticsearch.node.NodeBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.mozilla.grouperfish.services.api.Index;
import com.mozilla.grouperfish.services.api.IndexProvider;

public class ElasticSearchIndexProvider implements IndexProvider {

    private static final Logger log = LoggerFactory.getLogger(ElasticSearchIndexProvider.class);

    public static final String PROPERTY_CLUSTER = "grouperfish.services.elasticsearch.cluster";
    public static final String PROPERTY_CLUSTER_DEFAULT = "grouperfish";

    public static final String PROPERTY_TYPE = "grouperfish.services.elasticsearch.type";
    // :TODO: Hack... to simplify, we should use 1 index for all HC maps, and differentiate solely using type.
    public static final String PROPERTY_TYPE_DEFAULT = "documents";

    private final String type;
    private final Client client;

    public ElasticSearchIndexProvider(final Properties properties) {
        type = System.getProperty(PROPERTY_TYPE, PROPERTY_TYPE_DEFAULT);
        final String clusterName = System.getProperty(PROPERTY_CLUSTER, PROPERTY_CLUSTER_DEFAULT);
        final Node node = NodeBuilder.nodeBuilder().loadConfigSettings(false).client(true).data(false).clusterName(clusterName).build();
        node.start();
        client = node.client();

        log.info(String.format("Instantiated index provider: %s (cluster.name=%s)",
                               getClass().getSimpleName(), clusterName));
    }

    @Override
    public Index index(final String name) {
        return new ElasticSearchIndex(client, name, type);
    }

}
TOP

Related Classes of com.mozilla.grouperfish.services.elasticsearch.ElasticSearchIndexProvider

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.