1、es这门技术有点特殊,跟比如其他的像纯java的课程,比如分布式课程,或者大数据类的课程,比如hadoop,spark,storm等。不太一样
2、es非常重要的一个api,是它的restful api,你自己思考一下,掌握这个es的restful api,可以让你执行一些核心的运维管理的操作,比如说创建索引,维护索引,执行各种refresh、flush、optimize操作,查看集群的健康状况,比如还有其他的一些操作,就不在这里枚举了。或者说探查一些数据,可能用java api并不方便。
3、es的学习,首先,你必须学好restful api,然后才是你自己的熟悉语言的api,java api。
员工信息
- 姓名
- 年龄
- 职位
- 国家
- 入职日期
- 薪水
1、maven依赖
```org.elasticsearch.client transport 5.2.2 org.apache.logging.log4j log4j-api 2.7 org.apache.logging.log4j log4j-core 2.7
log4j2.properties
appender.console.type = Console appender.console.name = console appender.console.layout.type = PatternLayout
rootLogger.level = info rootLogger.appenderRef.console.ref = console
##### 2、构建client
Settings settings = Settings.builder() .put(“cluster.name”, “myClusterName”).build(); TransportClient client = new PreBuiltTransportClient(settings);
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(“host1”), 9300)) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(“host2”), 9300));
client.close();
##### 3、创建document
IndexResponse response = client.prepareIndex(“index”, “type”, “1”) .setSource(jsonBuilder() .startObject() .field(“user”, “kimchy”) .field(“postDate”, new Date()) .field(“message”, “trying out Elasticsearch”) .endObject() ) .get();
##### 4、查询document
GetResponse response = client.prepareGet(“index”, “type”, “1”).get();
##### 5、修改document
client.prepareUpdate(“index”, “type”, “1”)
.setDoc(jsonBuilder()
.startObject()
.field(“gender”, “male”)
.endObject())
.get();
##### 6、删除document
DeleteResponse response = client.prepareDelete(“index”, “type”, “1”).get();
代码如下:
import java.net.InetAddress;
import org.elasticsearch.action.delete.DeleteResponse; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.action.index.IndexResponse; import org.elasticsearch.action.update.UpdateResponse; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.InetSocketTransportAddress; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.transport.client.PreBuiltTransportClient;
/**
- 员工增删改查的应用程序
@author Administrator / public class EmployeeCRUDApp {
@SuppressWarnings({ “unchecked”, “resource” }) public static void main(String[] args) throws Exception {
// 先构建client Settings settings = Settings.builder() .put("cluster.name", "elasticsearch") .build(); TransportClient client = new PreBuiltTransportClient(settings) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));
// createEmployee(client); // getEmployee(client); // updateEmployee(client); // deleteEmployee(client);
client.close();
}
/**
* 创建员工信息(创建一个document)
* @param client
*/
private static void createEmployee(TransportClient client) throws Exception {
IndexResponse response = client.prepareIndex("company", "employee", "1")
.setSource(XContentFactory.jsonBuilder()
.startObject()
.field("name", "jack")
.field("age", 27)
.field("position", "technique")
.field("country", "china")
.field("join_date", "2017-01-01")
.field("salary", 10000)
.endObject())
.get();
System.out.println(response.getResult());
}
/**
* 获取员工信息
* @param client
* @throws Exception
*/
private static void getEmployee(TransportClient client) throws Exception {
GetResponse response = client.prepareGet("company", "employee", "1").get();
System.out.println(response.getSourceAsString());
}
/**
* 修改员工信息
* @param client
* @throws Exception
*/
private static void updateEmployee(TransportClient client) throws Exception {
UpdateResponse response = client.prepareUpdate("company", "employee", "1")
.setDoc(XContentFactory.jsonBuilder()
.startObject()
.field("position", "technique manager")
.endObject())
.get();
System.out.println(response.getResult());
}
/**
* 删除 员工信息
* @param client
* @throws Exception
*/
private static void deleteEmployee(TransportClient client) throws Exception {
DeleteResponse response = client.prepareDelete("company", "employee", "1").get();
System.out.println(response.getResult());
}
}
```