ElasticSearch java api -单例模式

//单例模式
private static Settings getSettingInstance(){
if(settings==null){
synchronized (Settings.class) {
if(settings==null){
settings = ImmutableSettings.settingsBuilder()
// client.transport.sniff=true
// 客户端嗅探整个集群的状态,把集群中其它机器的ip地址自动添加到客户端中,并且自动发现新加入集群的机器
.put("client.transport.sniff", true).put("client", true)// 仅作为客户端连接
.put("data", false).put("cluster.name", clustername)// 集群名称
.build();
}
}
}
return settings;
}
//单例模式
private static TransportClient client;
private static TransportClient getIstance() {
if (client == null) {
//同步代码块(对象未初始化时,使用同步代码块,保证多线程访问时对象在第一次创建后,不再重复被创建)
synchronized (TransportClient.class) {
if (client == null) {
client = new TransportClient(getSettingInstance()).addTransportAddress(new InetSocketTransportAddress(hostname, Integer.parseInt(port1)))// TCP
// 连接地址
.addTransportAddress(new InetSocketTransportAddress(hostname, Integer.parseInt(port2)));
}
}
}
return client;
}
/**
* 创建索引 写入elasticsearch
*
* @param jsonlist
* 要创建索引的jsonlist数据
*/
public static void createIndex(List<JSONObject> jsonlist) {
searchRequestBuilder = getIstance().prepareSearch(index);
try {
// 创建索引
for (int i = 0; i < jsonlist.size(); i++) {
IndexResponse indexResponse = client.prepareIndex(index, type, jsonlist.get(i).getString("id")).setSource(jsonlist.get(i).toString())
.execute().actionGet();
if (indexResponse.isCreated()) {
System.out.println("创建成功!");
} else {
System.out.println("创建失败!");
}
}
}
catch (Exception e) {
e.printStackTrace();
}

}

时间: 2024-10-08 08:54:27

ElasticSearch java api -单例模式的相关文章

ElasticSearch Java Api -创建索引

ElasticSearch JAVA API官网文档:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-index.html 一.生成JSON 创建索引的第一步是要把对象转换为JSON字符串.官网给出了四种创建JSON文档的方法: 1.1手写方式生成 String json = "{" + "\"user\":\"kimchy\"

Elasticsearch Java API (二): index创建删除 cluster管理

Elasticsearch Java API (二): index创建删除 cluster管理  elastic官网有权威的java api 英文的 需要耐心看 这里整理下基本操作 创建maven工程添加依赖 <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>5.2.2</ver

ElasticSearch Java Api -检索索引库

上篇博客记录了如何用java调用api把数据写入索引,这次记录下如何搜索. 一.准备数据 String data1 = JsonUtil.model2Json(new Blog(1, "git简介", "2016-06-19", "SVN与Git最主要的区别...")); String data2 = JsonUtil.model2Json(new Blog(2, "Java中泛型的介绍与简单使用", "2016-0

第08章 ElasticSearch Java API

本章内容 使用客户端对象(client object)连接到本地或远程ElasticSearch集群. 逐条或批量索引文档. 更新文档内容. 使用各种ElasticSearch支持的查询方式. 处理ElasticSearch返回的错误信息. 通过发送各种管理指令来收集集群状态信息或执行管理任务. 8.3 连接到集群 8.3.1 成为ElasticSearch节点 第一种连接到ElasticSearch节点的方式是把应用程序当成ElasticSearch集群中的一个节点. Node node=no

独孤九剑之Elasticsearch Java API破剑式

0.题记之前Elasticsearch的应用比较多,但大多集中在关系型.非关系型数据库与Elasticsearch之间的同步.以上内容完成了Elasticsearch所需要的基础数据量的供给.但想要在海量的数据中找到和自己相关的业务数据,实现对已有的数据实现全文检索.分类统计等功能并应用到业务系统中,必须借助Java API来实现. 1.Elasticsearch Java API 概览Elasticsearch Java API 相关使用研究结果: 1.1 国内的博文讲解Elasticsear

ElasticSearch Java api 详解_V1.0

原英文文档:http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/index.html (各个版本的api) Search部分: 查询有两种方法:query Java API和filter Java API 首先看一个例子: import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.Se

elasticsearch java API 实现搜索样例

查看cluster.version:curl 'centos1:9200'插入:curl -XPUT 'http://localhost:9200/dept/employee/1' -d '{ "empname": "emp1"}'查看index:curl 'centos1:9200/_cat/indices?v'查看1条内容:curl 'centos1:9200/dept/employee/1?pretty'查看所有内容:curl 'centos1:9200/de

Elasticsearch Java API(八)--搜索有相同父id的子文档

需求: 搜索具有相同父id的所有子文档. 数据:    mapping:      { "mappings": { "branch": {}, "employee": { "_parent": { "type": "branch" } } } } 父文档: { "index": { "_id": "london" }} { &q

Elasticsearch java api 基本搜索部分详解

版权声明:本文非原创文章,转载出处:http://blog.csdn.net/molong1208/article/details/50512149 一.所使用版本的介绍 使用的是elasticsearch2.1.0版本,在此只是简单介绍搜索部分的api使用 二.简单的搜索 使用api的时候,基本上可以将DSL搜索的所有情况均写出来,在此给出一个最简单搜索的全部的过程以及代码,之后将对不同的搜索只是针对函数进行介绍 (1)DSL搜索 对于最简单的DSL搜索,对一个词进行搜索使用url直接进行通信