ES版本采用5.5.2群集方式
pom
<dependencies>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>5.5.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
</dependencies>
log4j2
appender.console.type = Console
appender.console.name = console
appender.console.layout.type = PatternLayout
rootLogger.level = info
rootLogger.appenderRef.console.ref = console
java基本操作
public class Test {
public static void main(String[] args) throws IOException {
System.out.print("====链接====");
Settings settings = Settings.builder()
.put("cluster.name", "es-cluster").build();
TransportClient client = new PreBuiltTransportClient(settings);
client.addTransportAddress(new InetSocketTransportAddress(
InetAddress.getByName("10.1.198.86"), 9300)); //群集端口
//新增
System.out.print("====新增====");
IndexResponse response = client.prepareIndex("jtthink", "users", "104")
.setSource(jsonBuilder()
.startObject()
.field("name", "niushijin")
.field("age", "10")
.field("sex", "1")
.endObject()
)
.get();
System.out.println(response.status()+" "+response.getIndex());
//删除 "twitter", "tweet", "1"
System.out.print("====删除====");
DeleteResponse dr = client.prepareDelete("twitter", "tweet", "1").get();
System.out.println(dr.status()+" "+dr.getIndex());
//id查询
System.out.print("====id查询====");
GetResponse getResponse = client.prepareGet("jtthink", "users","101").get();
String msg = getResponse.getSourceAsString();
System.out.println(msg);
//更新
System.out.print("====更新====");
UpdateResponse ur = client.prepareUpdate("jtthink", "users", "101")
.setDoc(jsonBuilder()
.startObject()
.field("age", "100")
.endObject())
.get();
System.out.println(ur.getResult()+" "+ur.status()); //NOOP OK
//query查询 全匹配
System.out.print("====query查询====");
QueryBuilder qb = matchQuery(
"name",
"shen"
);
SearchResponse sr = client.prepareSearch("jtthink")
.setTypes("users").setQuery(qb).get();
SearchHit[] result = sr.getHits().getHits();
for(SearchHit searchHit: result){
System.out.println(searchHit.getSourceAsString());
}
client.close();
}
}
java批量
public class TestBulk {
public static void main(String[] args) throws IOException {
System.out.print("====链接====");
Settings settings = Settings.builder()
.put("cluster.name", "es-cluster").build();
TransportClient client = new PreBuiltTransportClient(settings);
client.addTransportAddress(new InetSocketTransportAddress(
InetAddress.getByName("10.1.198.86"), 9300)); //群集端口
//批量添加
System.out.println("====批量添加====");
BulkRequestBuilder bulkRequest = client.prepareBulk();
for(int i=200; i<210; i++)
bulkRequest.add(client.prepareIndex("jtthink", "users", i + "")
.setSource(jsonBuilder()
.startObject()
.field("name", "niu" + i)
.field("age", "15")
.field("sex", "1")
.endObject()
)
);
/*
bulkRequest.add(client.prepareIndex("twitter", "tweet", "2")
.setSource(jsonBuilder()
.startObject()
.field("user", "kimchy")
.field("postDate", new Date())
.field("message", "another post")
.endObject()
)
);
*/
BulkResponse bulkResponse = bulkRequest.get();
if (bulkResponse.hasFailures()) {
System.out.println("====faile====");
}else{
System.out.println("====success====");
}
}
}