1:提前准备环境以及es软件 ,大家可以去官网下载,我用的是es window 7.4的
es官网:https://www.elastic.co/cn/downloads/elasticsearch
2:然后打开idea创建好准备好,请看下面代码,着里面的代码如果大家看过我之前写过的postMan的创建索引库的方式其实是差不多的.
public class esTest { public static void main(String[] args) throws IOException { // 创建es客户端 RestHighLevelClient client = new RestHighLevelClient( RestClient.builder(new HttpHost("localhost",9200,"http")) ); // 创建索引库名称 CreateIndexRequest request = new CreateIndexRequest("qianyuedong"); // 创建索引库 CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT); // 打印是否创建成功 System.out.println("操作索引库"+response.isAcknowledged()); // 关闭客户端 client.close(); }}
3:请看返回结果
这时候我们可以去用postman去查看索引库的信息 localhost:9200/_cat/indices?v
2:接下来我们来查询刚刚所创建的索引库(1):其实大部分代码都是一样的。大家只有稍微的加以理解很快就能明白其中的道理下面请看例子
public class esTestRequest { public static void main(String[] args) throws IOException { // 创建es客户端 RestHighLevelClient client = new RestHighLevelClient( RestClient.builder(new HttpHost("localhost",9200,"http")) ); //查询索引库 GetIndexRequest request = new GetIndexRequest("qian"); GetIndexResponse response = client.indices().get(request, RequestOptions.DEFAULT); // 查看查询结果 System.out.println(response.getAliases()); System.out.println(response.getMappings()); System.out.println(response.getSettings()); // 关闭客户端 client.close(); }}
这里面的打印结果跟我们之前postMan查询的结果是一样的,相信大家看到这里大概就能明白了。这里就不多做解释了。如果大家还是不明白去看看我之前写的
“es的基本操作”
“和es多条件查询”
3:删除索引库,其实大家看到了这里面大家都明白了是怎么一回事了
public class esTestDelRequest { public static void main(String[] args) throws IOException { // 创建es客户端 RestHighLevelClient client = new RestHighLevelClient( RestClient.builder(new HttpHost("localhost",9200,"http")) ); //删除索引库 DeleteIndexRequest request = new DeleteIndexRequest("qian"); AcknowledgedResponse response = client.indices().delete(request, RequestOptions.DEFAULT); // 查看查询结果 boolean acknowledged = response.isAcknowledged(); System.out.println("删除索引库成功"+acknowledged); // 关闭客户端 client.close(); }
执行结果:
之前我们postman的结果
4:增加文档数据
上面我们把索引库已经的一些基本的创建查询已经全部用java 代码所实现了,下面我们把数据 加入到 索引库中,但是要注意的是,再我们创建索引库的时候用的客户端的indices中的,但是再创建数据的时候我们需要用index下面请看例子,
准备 一个对象,这个对象方便我们下次把数据转成json格式存入index数据库中。
import lombok.Data;@Dataclass Person { private String name; private String sex; private String tel;}
import org.elasticsearch.client.RestHighLevelClient;import org.elasticsearch.client.security.user.User;import org.elasticsearch.common.xcontent.XContentType;import java.io.IOException;public class esInsert { public static void main(String[] args) throws IOException { // 创建es客户端 RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http"))); //插入数据,再前面我们都是创建indices然后去创建跟索引库相关的 IndexRequest request = new IndexRequest(); // 插入数据 request.index("qian").id("1001"); //准备数据因为再ES中都是json格式的数据所以我们前期准备的依赖也准备fastjson依赖 Person person = new Person(); person.setName("张三"); person.setSex("男的"); person.setTel("17721650570");// String string = JSON.toJSonString(person); // 或者这样装成json ObjectMapper mapper = new ObjectMapper(); String jsonPerson = mapper.writevalueAsString(person); // 再将我们的json数据放进request中作为数据源 request.source(jsonPerson, XContentType.JSON); IndexResponse response = client.index(request, RequestOptions.DEFAULT); // 查看结果 DocWriteResponse.Result result = response.getResult(); // 关闭客户端 System.out.println(request); client.close(); }}
IDEA控制台打印的结果
Connected to the target VM, address: '127.0.0.1:60845', transport: 'socket'index {[qian][_doc][1001], source[{"name":"张三","sex":"男的","tel":"17721650570"}]}Disconnected from the target VM, address: '127.0.0.1:60845', transport: 'socket'Process finished with exit code 0
我们在回忆一下,之前我们用postman客户端,再索引库中 打印的结果把
5:修改文档数据
修改索引库中的数据源,修改的时候我们操作的是文档数据,doc,再es中之前也跟大家说过文档数据再是es的核心。下面请看用java代码如何实现修改es中的数据
大家请先看一下之前我们用postman工具修改文档的数据。
估计大家对文档数据据的修改也有了大概的了解,下面请大家看一下,java代码是如何修改数据的。
public class esUapate { public static void main(String[] args) throws IOException { // 创建es客户端 RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http"))); //插入数据,再前面我们都是创建indices然后去创建跟索引库相关的 UpdateRequest request = new UpdateRequest(); //在修改数据的时候我们就不叫index,应该是update // 修改数据我们是对文档的数据进行修改 request.index("qian").id("1001"); // 表示对哪个索引库进行修改对那条数据进行修改 // doc 表示文档数据 request.doc(XContentType.JSON,"sex","女"); UpdateResponse response = client.update(request, RequestOptions.DEFAULT); // 打印结果 System.out.println(response.getResult()); client.close(); }}
控制台结果然后我们去postman工具查看是否修改成功
相信大家看到这里对es的基本数据的操作用java代码也有个基本的认识如果还有不明白的去es官网,官网上的例子也很直白。
6:文档数据的查询public class EsDOC_GetRequest { public static void main(String[] args) throws IOException { // 创建es客户端 RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http"))); // 所有的 方式都是要拿到查询的条件,大家可以看之间所有写过的东西 GetRequest request = new GetRequest(); // 我们把我们要查询的条件放进去 查询的索引库以及查询数据id request.index("qian").id("1001"); // 再构建完查询条件以后我们需要把条件放进去,所有对文档的操作大家都看到了用客户端client.index去完成 // 之前我们再创建索引库的时候用的是client.indices.create或者delete ,get。 GetResponse response = client.get(request, RequestOptions.DEFAULT); // 打印结果都是跟数据源相关的,这俩中写法都行 System.out.println(response.getSourceAsString());// System.out.println(response.getSourceAsMap()); client.close(); }}
查看打印结果j:
这就是我们的查询文档数据,大家觉得是不是很简单。
7:文档数据的删除public class EsDOC_Delete { public static void main(String[] args) throws IOException { // 创建es客户端 RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http"))); // 删除索引库,首先还是创建删除的条件 DeleteRequest request = new DeleteRequest(); // 构建删除的索引库名称以及删除索引库的文档数据是哪一条 request.index("qian").id("1001"); DeleteResponse response = client.delete(request, RequestOptions.DEFAULT); //打印结果 System.out.println(response.getResult()); System.out.println(response.toString()); client.close(); }}
查看打印结果
倒这里我们的文档数据的curd和索引库的curd到这里就结束了大家看起来是不是还是很简单的今天本章用java代码的简单索引库的创建和简单的数据增修改,就到这里了,下一篇我们继续学习,和聚合查询,高亮查询。。。。继续,喜欢的请关注,转发 收藏,感谢。