之前的七篇都是es6的基础,视频讲得零散,我调整了一下笔记顺序,整体还是有点乱:
1 创建项目
首先创建一个简单的maven项目(熟悉的可以忽略):
视频使用的工具是eclipse,我用的是idea,所以这里放一下教程。
(1)Create New Project。
(2 )选择maven。SDK选择1.8。没有特殊需求的Create from archetype可以不选。
(3)输入GroupId、artifactId。我填的only.mauanx和esTest。
(4)进入后,右下角会有小弹窗,点击Enable Auto-Import可以自动下载pom中导入的依赖。
(5)因为创建maven的时候什么都没选,所以需要我们手动导入依赖和配置。pom.xml如下:
```java
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>only.mauanx</groupId>
<artifactId>esTest</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- elasticsearch 客户端 -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>6.3.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- java 编译插件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
2 es查询
本篇进行一个简单的查询,在test-java中建一个esDemo。
代码如下(请自行导入import,idea飘红的地方用alt+enter就可以。):
public class esDemo {
// 从es中查询数据
@Test
public void esGet() throws UnknownHostException {
// 指定es集群;查看 elasticsearch.yml -- put("cluster.name",集群名称)
Settings settings = Settings.builder().put("cluster.name","elastricsearch").build();
// 创建访问es服务器的客户端
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddresses(new TransportAddress(InetAddress.getByName("192.168.180.235"),9300));
// 数据查询
GetResponse response = client.prepareGet("mauanx","user","1").execute().actionGet();
// 得到查询的数据,json格式
System.out.println(response.getSourceAsString());
client.close();
}
}
其中,集群名称的查看方法如下图所示。
运行结果如下。
可以查询出结果。但是报了一个log4j的错误。我尝试着搜了一下解决方法,比如添加一个依赖。结果出了新的错。以后再解决这个问题吧。
3 MGet批量查询
查询mauanx的user中id为1、2的文档。代码如下:
// 批量查询
@Test
public void esMget() throws IOException {
// 指定es集群;查看 elasticsearch.yml -- put("cluster.name",集群名称)
Settings settings = Settings.builder().put("cluster.name","elastricsearch").build();
// 创建访问es服务器的客户端
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddresses(new TransportAddress(InetAddress.getByName("192.168.180.235"),9300));
// 批量查询
MultiGetResponse response = client.prepareMultiGet()
.add("mauanx","user","1")
.add("mauanx","user","2")
.get();
// 输出添加状态
for (MultiGetItemResponse item:response){
GetResponse gr = item.getResponse();
System.out.println(gr.toString());
}
client.close();
}
结果如下图所示:
不要在意我的拼写错误,我不想改了。