2:elasticsearch客户端创建

根据elasticsearch的API,首先,要创建一个客户端实例Client,代码如下

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.netty.util.internal.ConcurrentHashMap;
import org.elasticsearch.common.settings.ImmutableSettings;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;

/**
 * client客户端帮助类
 * 
 * @author tuoqiantu
 * @date 2013-8-9 下午3:55:38
 * 
 */
public class ClientHelper {

    private static Settings setting;

    public static List<InetSocketTransportAddress> transportAddress = new ArrayList<InetSocketTransportAddress>();

    private static Map<String, Client> clientMap = new ConcurrentHashMap<String, Client>();

    private static Map<String, Integer> ips=new HashMap<>();
    
    private static String clusterName = "node1";
    static {
        ips.put("192.168.1.100", 9300);
        ips.put("192.168.1.101", 9300);
        init();
    }

    /**
     * 初始化默认的client
     */
    public static void init() {
        setting = ImmutableSettings
                .settingsBuilder()
                .put("client.transport.sniff",true)
                .put("client",true)
                .put("data",false)
                .put("cluster.name","elasticsearch").build();
        transportAddress.addAll(getAllAddress(ips));
        Client client = new TransportClient(setting)
                .addTransportAddresses(transportAddress
                        .toArray(new InetSocketTransportAddress[transportAddress
                                .size()]));
        
        clientMap.put(clusterName, client);
    }

    /**
     * 获得所有的地址端口
     * 
     * @return
     */
    public static List<InetSocketTransportAddress> getAllAddress(Map<String, Integer> ips) {
        List<InetSocketTransportAddress> addressList = new ArrayList<InetSocketTransportAddress>();
        for (String ip : ips.keySet()) {
            addressList.add(new InetSocketTransportAddress(ip, ips.get(ip)));
        }
        return addressList;

    }

    public static Client getClient() {
        return getClient(clusterName);
    }

    public static Client getClient(String clusterName) {
        
        return clientMap.get(clusterName);
    }

    public static void addClient(Settings setting,
            List<InetSocketTransportAddress> transportAddress) {
        Client client = new TransportClient(setting)
                .addTransportAddresses(transportAddress
                        .toArray(new InetSocketTransportAddress[transportAddress
                                .size()]));
        clientMap.put(setting.get("cluster.name"), client);
    }
}
时间: 2024-10-13 09:27:30

2:elasticsearch客户端创建的相关文章

ElasticSearch客户端注解使用介绍

The best elasticsearch highlevel java rest api-----bboss 1.ElasticSearch客户端bboss提供了一系列注解 @ESId  用于标识实体对象中作为docid的属性,该注解只有一个persistent 布尔值属性,用于控制被本注解标注的字段属性是否作为普通文档属性保存,默认为true-保存,false不保存,字段名称为属性名称.ESId可用于添加和修改文档 @ESParentId 用于标识实体对象中作为parentid的属性,该注

使用java客户端创建索引库

package com.hope.es; import org.elasticsearch.client.transport.TransportClient;import org.elasticsearch.common.settings.Settings;import org.elasticsearch.common.transport.InetSocketTransportAddress;import org.elasticsearch.transport.client.PreBuiltTr

elasticsearch 客户端的建立

一般情况下,我们可以用如下方法获取一个java client. 1 2 3 4 5 6 7 8 9 public Client getTransportClient(){   // 设置client.transport.sniff为true来使客户端去嗅探整个集群的状态,把集群中其它机器的ip地址加到客户端中, // 这样做的好处是一般你不用手动设置集群里所有集群的ip到连接客户端,它会自动帮你添加,并且自动发现新加入集群的机器. Settings settings = ImmutableSet

IBM规则引擎(ODM)入门系列二(3):规则引擎客户端创建

最近太忙,今天终于可以抽出时间来更新,有几位博友一直关注,所以我一定会更新. 前面讲了很多,包括如何创建规则项目,如何编写规则集,如何安装res服务及发布规则包,但是做了这么多好像还是不知道如何在我们的应用中调用或使用我们创建的规则项目,那么今天,在这里一起看看,可以使用什么方式来在我们自己的应用中使用规则项目. 其实规则项目的发布有两种方式,一种是发布到文件系统中,也就是发布到一个文件夹下面,另一种是发布到数据库. 如何在自己的应用中调用规则?也有两种方式,一种是创建本地客户端,然后集成进我们

Elasticsearch索引创建快照

Elasticsearch snapshot简介 快照一般建立在一个共享的文件系统上,这样的话有一个节点快照,别的节点也是可以看到的,这样删除的时候也可以同时删除,(在最新版里面创建仓库如果未使用共享文件系统会提示你,在其他节点未找到对应的仓库). 注册快照仓库 注意这里的"location"目录必须是"path.repo"里面指定的,或者子目录. [[email protected] elasticsearch]# curl -XPUT 'http://local

github客户端创建仓库

1.在github上创建立自己项目仓库 登录后,在github首页,点击页面右下角“New Repository” 填写项目信息: project name: project description : 备注可以不填; 点击“Create Repository” : 现在完成了一个项目在github上的创建. 说明:一个仓库里只能存放(或叫对应)一个项目. 2.上传项目方式(客户端或在线web版); 我选择了客户端方式: 安装后 双击打开(输入git help git 可以查看相关命令帮助) 3

kafka集群搭建与api客户端创建

以前的消息队列(activeMQ)对于大数据吞吐率不行,但kafka很好的解决了此类问题,并且以集群的方式进行扩展,可谓相当强大: 集群搭建方式非常轻量级,只需将tar包拷贝到服务器,解压,修改配置文件即可: 1.tar -xzf kafka_2.9.2-0.8.1.1.tgz 2.修改配置文件: 节点1: vim config/server.properties broker.id=1 //所有集群节点中必须唯一 port=9092 //端口号(发送消息) log.dir=/tmp/kafka

python socket编程 ,tcp,udp服务端客户端创建

转自http://blog.csdn.net/rebelqsp/article/details/22109925 Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发. 下面讲的是Socket模块功能 1.Socket 类型 套接字格式: socket(family,type[,protocal]) 使用给定的地址族.套接字类型.协议编号

NFS(expirtfs命令,NFS客户端创建新文件所属组和所属主都为nobody)

一.exportfs命令 nfs进程不能随便从新启动,如果不得已要重启,必须把客户端的挂载目录卸载,然后在从新启动. 这时候就可以用exportfs命令 -a             全部挂载或者全部卸载 -r             重新挂载 -u             卸载某一个目录 -v             显示共享目录 实验: 我们在服务端的配置文件从新写一行配置 [[email protected] nfstestdir]# vim /etc/exports /tmp/ 192.