创建maven工程
在 pom.xml 中加入 Elasticsearch 的依赖:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>6.4.1</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.4.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.46</version>
</dependency>
创建ES连接测试
在敲代码过程中有红色下划线需要使用Alt+Enter,抛出异常。
查询
package big_data;
public class ESdemo {
public final static String HOST = "192.168.108.126";
public final static int PORT = 9300;
//从ES中进行查询
@Test
public void test1() throws UnknownHostException {
//指定ES集群,名称在elasticsearch.yml中查看
Settings settings = Settings.builder().put("cluster.name","my-application").build();
//创建访问ES服务器的客户端
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName(HOST),PORT));
//数据查询
GetResponse response = client.prepareGet("postgres_test","doc","1").execute().actionGet();
//得到查询结果
System.out.println(response.getSourceAsString());
//关闭查询
client.close();
}
}
添加文档
@Test
public void test_add() throws IOException {
//指定ES集群,名称在elasticsearch.yml中查看
Settings settings = Settings.builder().put("cluster.name","my-application").build();
//创建访问ES服务器的客户端
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName(HOST),PORT));
//添加文档
XContentBuilder doc = XContentFactory.jsonBuilder()
.startObject()
.field("id","1")
.field("title","Java设计原理")
.endObject();
IndexResponse response = client.prepareIndex("index1","blog","1")
.setSource(doc).get();
System.out.println(response.status());
}
删除文档
@Test
public void test_delete() throws UnknownHostException {
//指定ES集群,名称在elasticsearch.yml中查看
Settings settings = Settings.builder().put("cluster.name","my-application").build();
//创建访问ES服务器的客户端
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName(HOST),PORT));
//删除文档
DeleteResponse response = client.prepareDelete("index1","blog","1").get();
System.out.println(response.status());
}
range查询
@Test
public void test_range() throws UnknownHostException {
//指定ES集群,名称在elasticsearch.yml中查看
Settings settings = Settings.builder().put("cluster.name","my-application").build();
//创建访问ES服务器的客户端
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName(HOST),PORT));
//range查询
QueryBuilder build = QueryBuilders.rangeQuery("birthday")
.from("1990-01-01")
.to("2010-11-01")
.format("YYYY-MM-DD");
SearchResponse response = client.prepareSearch("lib3")
.setQuery(build)
.get();
SearchHits hits = response.getHits();
for(SearchHit hit:hits){
System.out.println(hit.getSourceAsString());
}
}
term查询
@Test
public void test_term() throws UnknownHostException {
//构建Transport Client
Settings settings = Settings.builder().put("cluster.name","my-application").build();
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName(HOST),PORT));
QueryBuilder build = QueryBuilders.termQuery("title","设");
SearchResponse response = client.prepareSearch("index1")
.setQuery(build)
.get();
SearchHits hits = response.getHits();
for (SearchHit hit:hits){
System.out.println(hit.getSourceAsString());
}
}
terms查询
@Test
public void test_terms() throws UnknownHostException {
//构建Transport Client
Settings settings = Settings.builder().put("cluster.name","my-application").build();
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName(HOST),PORT));
QueryBuilder build = QueryBuilders.termsQuery("title","设","原");
SearchResponse response = client.prepareSearch("index1")
.setQuery(build)
.get();
SearchHits hits = response.getHits();
for (SearchHit hit:hits){
System.out.println(hit.getSourceAsString());
}
}
各类查询
@Test
public void query_test() throws UnknownHostException {
Settings settings = Settings.builder().put("cluster.name","my-application").build();
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName(HOST),PORT));
//prefix查询,前缀查询
//QueryBuilder build = QueryBuilders.prefixQuery("bumen","数");
//wildcard查询,宽查询
//QueryBuilder build = QueryBuilders.wildcardQuery("bumen","数*");
//fuzzy查询,模糊查询
//QueryBuilder build = QueryBuilders.fuzzyQuery("xingming","张");
//type查询
//QueryBuilder build = QueryBuilders.typeQuery("logs");
//ids查询
QueryBuilder build = QueryBuilders.idsQuery("2","5");
//结果展示
SearchResponse response = client.prepareSearch("omega2").setQuery(build).get();
SearchHits hits = response.getHits();
for (SearchHit hit:hits){
System.out.println(hit.getSourceAsString());
}
}