elasticsearch6.4.3 连接服务器操作增删和全文检索

这里用的是springboot 所以导入pom文件

org.elasticsearch
elasticsearch


org.springframework.boot
spring-boot-starter-data-elasticsearch

这里默认识别的elasticsearch最新的版本就是6.4.3

首先再kibana里面建立索引,和mapping映射
PUT /tgdsm
{
“settings”: {
“number_of_shards”: 3
, “number_of_replicas”: 0
},
“mappings”: {
“document”:{
“properties”:{
“documentid”:{
“type”:“long”
},
“documentname”:{
“type”:“text”,
“analyzer”:“ik_max_word”
},
“documentsize”:{
“type”:“long”
},
“uploader”:{
“type”:“text”,
“analyzer”:“ik_max_word”
},
“uploadtime”:{
“type”:“date”
}
}
}
}
}

插入十条数据做测试
PUT /tgdsm/document/1
{
“documentid”:1,
“documentname”:“山峡水利大坝文件”,
“documentsize”:1056,
“uploader”:“刘飞”,
“uploadtime”:“2019-01-16”
}
PUT /tgdsm/document/2
{
“documentid”:2,
“documentname”:“葛洲坝大坝水利系统”,
“documentsize”:1059,
“uploader”:“高强”,
“uploadtime”:“2019-03-15”
}
PUT /tgdsm/document/3
{
“documentid”:3,
“documentname”:“运力水库水利文件”,
“documentsize”:2056,
“uploader”:“夏启明”,
“uploadtime”:“2018-01-16”
}
PUT /tgdsm/document/4
{
“documentid”:4,
“documentname”:“温州建华水利系统”,
“documentsize”:2099,
“uploader”:“夏启明”,
“uploadtime”:“2018-06-16”
}
PUT /tgdsm/document/5
{
“documentid”:5,
“documentname”:“大坝安全资料”,
“documentsize”:20556,
“uploader”:“刘飞”,
“uploadtime”:“2018-02-16”
}
PUT /tgdsm/document/6
{
“documentid”:6,
“documentname”:“监理温控例子文件”,
“documentsize”:2996,
“uploader”:“夏启明”,
“uploadtime”:“2018-08-16”
}
PUT /tgdsm/document/7
{
“documentid”:7,
“documentname”:“福州水库防备”,
“documentsize”:256,
“uploader”:“高强”,
“uploadtime”:“2018-01-16”
}
PUT /tgdsm/document/8
{
“documentid”:8,
“documentname”:“苏州水坝操作”,
“documentsize”:16,
“uploader”:“夏启明”,
“uploadtime”:“2018-01-16”
}
PUT /tgdsm/document/9
{
“documentid”:9,
“documentname”:“济南离合水”,
“documentsize”:2996,
“uploader”:“张衡”,
“uploadtime”:“2018-01-17”
}
PUT /tgdsm/document/10
{
“documentid”:10,
“documentname”:“十堰安全防备资料”,
“documentsize”:2089,
“uploader”:“刘飞”,
“uploadtime”:“2019-01-16”
}

做junit测试
1.(按id做查询)
@Test
public void esSearchTest() throws Exception {
Settings settings=Settings.builder().put(“cluster.name”, “my-application”).build();
TransportClient client=new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName(“192.168.1.109”), 9300));
GetResponse response=client.prepareGet(“index1”, “blog”,“10”).execute().actionGet();
System.out.println(response.getSourceAsString());
client.close();
}

2(添加操作)
/**
* 添加document
* @throws Exception
*/
@Test
public void esAddTest() throws Exception {
Settings settings=Settings.builder().put(“cluster.name”, “my-application”).build();
TransportClient client=new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName(“192.168.1.109”), 9300));

	XContentBuilder doc=XContentFactory.jsonBuilder()
			.startObject()
			.field("id", "1")
			.field("title", "Java设计模式之装饰者模式")
			.field("content", "在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。")
			.field("postdate", "2018-05-20")
			.field("url", "csdn.net/79239072")
			.endObject();
	IndexResponse response=client.prepareIndex("index1", "blog", "10").setSource(doc).get();
	System.out.println("============="+response.status());
		}
3,(删除操作)
/**
 * 根据Id删除document
 * @throws UnknownHostException 
 */
@Test
public void esDel() throws UnknownHostException {
	Settings settings=Settings.builder().put("cluster.name", "my-application").build();
	TransportClient client=new PreBuiltTransportClient(settings)
			.addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.109"), 9300));
    
	DeleteResponse response=client.prepareDelete("index1", "blog", "10").get();
    System.out.println("------------"+response.status());
}
下面执行三种全文检索测试效果
4
/**
 * 实现全文检索multi
 * @throws UnknownHostException 
 */
 //第一种
@Test
public void essearchAll1() throws UnknownHostException {
	Settings settings=Settings.builder().put("cluster.name", "my-application").build();
	TransportClient client=new PreBuiltTransportClient(settings)
			.addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.109"), 9300));
    QueryBuilder builder=QueryBuilders.multiMatchQuery("大坝","documentname","uploader");
    SearchResponse response=client.prepareSearch("tgdsm")
    		.setTypes("document")
    		.setQuery(builder)

// .setSize(3)
.get();
/* System.out.println(“结果”+response);*/
SearchHits hits = response.getHits();
for (SearchHit hit : hits) {
System.out.println(hit.getSourceAsString());
Map<String, Object> map = hit.getSourceAsMap();
for(String key:map.keySet()) {
/System.out.println(key+"="+map.get(key));/
}
}

}

//第二种
@Test
public void essearchAll2() throws UnknownHostException {
Settings settings=Settings.builder().put(“cluster.name”, “my-application”).build();
TransportClient client=new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName(“192.168.1.109”), 9300));
QueryBuilder builder=QueryBuilders.multiMatchQuery(“大坝水利”,“documentname”,“uploader”);
SearchResponse response=client.prepareSearch(“tgdsm”)
.setTypes(“document”)
.setQuery(builder)
// .setSize(3)
.get();
/* System.out.println(“结果”+response);*/
SearchHits hits = response.getHits();
for (SearchHit hit : hits) {
System.out.println(hit.getSourceAsString());
Map<String, Object> map = hit.getSourceAsMap();
for(String key:map.keySet()) {
/System.out.println(key+"="+map.get(key));/
}
}

}

//第三种
@Test
public void essearchAll3() throws UnknownHostException {
Settings settings=Settings.builder().put(“cluster.name”, “my-application”).build();
TransportClient client=new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName(“192.168.1.109”), 9300));
QueryBuilder builder=QueryBuilders.multiMatchQuery(“大坝水利高强”,“documentname”,“uploader”);
SearchResponse response=client.prepareSearch(“tgdsm”)
.setTypes(“document”)
.setQuery(builder)
// .setSize(3)
.get();
/* System.out.println(“结果”+response);*/
SearchHits hits = response.getHits();
for (SearchHit hit : hits) {
System.out.println(hit.getSourceAsString());
Map<String, Object> map = hit.getSourceAsMap();
for(String key:map.keySet()) {
/System.out.println(key+"="+map.get(key));/
}
}

}

//第四种是分页的情况
/**
/
@Test
public void essearchAll4() throws UnknownHostException {
Settings settings=Settings.builder().put(“cluster.name”, “my-application”).build();
TransportClient client=new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName(“192.168.1.109”), 9300));
QueryBuilder builder=QueryBuilders.multiMatchQuery(“大坝水利高强”,“documentname”,“uploader”);
SearchResponse response=client.prepareSearch(“tgdsm”)
.setTypes(“document”)
.setQuery(builder)
// .setSize(3)
.setFrom(0)//分页起点
.setSize(2)//每页包含数量
.get();
/
System.out.println(“结果”+response);*/
SearchHits hits = response.getHits();
for (SearchHit hit : hits) {
System.out.println(hit.getSourceAsString());
Map<String, Object> map = hit.getSourceAsMap();
for(String key:map.keySet()) {
/System.out.println(key+"="+map.get(key));/
}
}

}

猜你喜欢

转载自blog.csdn.net/qq_43077857/article/details/90200796