ElasticSearch基础知识

es是什么


在这里插入图片描述

启动es


在这里插入图片描述

访问

在这里插入图片描述

在这里插入图片描述

常见问题


1.ElasticsearchException[X-Pack is not supported and Machine Learning is not available for

解决:在config/elasticsearch.yml添加一条配置:

xpack.ml.enabled: false

客户端安装


在这里插入图片描述

数据格式


倒排索引和正排索引

在这里插入图片描述

在这里插入图片描述

索引操作


在这里插入图片描述

索引创建过程

PUT请求具有密等性

在这里插入图片描述

索引查询和删除


查询

在这里插入图片描述

查看创建的所有索引的信息

访问地址:

http://localhost:9200/_cat/indices?v

在这里插入图片描述

在这里插入图片描述

删除索引

在这里插入图片描述

文档创建


在这里插入图片描述

创建文档

在这里插入图片描述

创建自己的文档id

在这里插入图片描述

查询索引中指定id的数据

在这里插入图片描述

查询索引下的所有数据

在这里插入图片描述

数据的修改

测试数据

{

“title”:“es的学习”,

“name”:“hjx”,

“time”:“2021-12-23”

}

全量修改

在这里插入图片描述

局部修改

在这里插入图片描述

删除操作

在这里插入图片描述

查询操作


条件查询

http://localhost:9200/shopping/_search?q=price:100

在这里插入图片描述

上面这种查询方式不方便(因为查询条件是在url中的,下面这种将查询条件放入请求体中)

在这里插入图片描述

在这里插入图片描述

使用请求体全部查询

在这里插入图片描述

分页查询

from:表示当前页数据的起始位置

size:每页查询的数据条数

在这里插入图片描述

显示指定字段的数据

在这里插入图片描述

在这里插入图片描述

查询排序

在这里插入图片描述

多条件查询


在这里插入图片描述

在这里插入图片描述

注意:这里的must相当于mysql中的and 连接符

{

“query”:{

“bool”:{

“must”:[

{

“match”:{

“price”:23

}

},

{

“match”:{

“title”:“JSP入门”

}

},

]

}

}

}

或查询

在这里插入图片描述

范围查询

在这里插入图片描述

全文检索、完全匹配、高亮查询


全文检索

注意:这种查询方式会将含有其中一个词的数据的每条数据都查询出来

在这里插入图片描述

完全匹配

在这里插入图片描述

高亮查询

在这里插入图片描述

聚合查询


在这里插入图片描述

查询平均值

在这里插入图片描述

映射关系


创建映射

在这里插入图片描述

在这里插入图片描述

体现映射效果

在这里插入图片描述

java api操作es


环境准备

org.elasticsearch

elasticsearch

7.11.2

org.elasticsearch.client

elasticsearch-rest-high-level-client

7.11.2

org.apache.logging.log4j

log4j-api

2.10.0

com.fasterxml.jackson.core

jackson-databind

2.9.9.3

junit

junit

4.12

test

创建连接

// 创建es客户端

RestHighLevelClient client=new RestHighLevelClient(

RestClient.builder(new HttpHost(“localhost”,9200,“http”))

);

client.close();

创建索引

// 创建es客户端

RestHighLevelClient client=new RestHighLevelClient(

RestClient.builder(new HttpHost(“localhost”,9200,“http”))

);

// 创建索引

CreateIndexRequest request=new CreateIndexRequest(“fruit”); // 索引名称

CreateIndexResponse response =client.indices().create(request, RequestOptions.DEFAULT);

// 响应状态

boolean acknowledged=response.isAcknowledged();

System.out.println(“索引操作:”+acknowledged);

client.close();

索引查询

// 创建es客户端

RestHighLevelClient client=new RestHighLevelClient(

RestClient.builder(new HttpHost(“localhost”,9200,“http”))

);

// 查询索引

GetIndexRequest request=new GetIndexRequest(“fruit”);

GetIndexResponse response=client.indices().get(request, RequestOptions.DEFAULT);

// 响应状态

System.out.println(response.getAliases());

System.out.println(response.getMappings());

System.out.println(response.getSettings());

索引删除

// 创建es客户端

RestHighLevelClient client=new RestHighLevelClient(

RestClient.builder(new HttpHost(“localhost”,9200,“http”))

);

// 查询索引

DeleteIndexRequest request=new DeleteIndexRequest(“fruit”);

AcknowledgedResponse response=client.indices().delete(request, RequestOptions.DEFAULT);

// 响应状态

System.out.println(response.isAcknowledged());入代码片

索引添加数据

// 创建es客户端

RestHighLevelClient client=new RestHighLevelClient(

RestClient.builder(new HttpHost(“localhost”,9200,“http”))

);

// 插入数据

IndexRequest request=new IndexRequest();

request.index(“fruit”).id(“101”);

// 设置对象数据

Fruit fruit=new Fruit();

// fruit.setId();

fruit.setName(“苹果”);

fruit.setPrice(5.5);

fruit.setColor(“yellow”);

// client.index(request, RequestOptions.DEFAULT);

// 注意:将数据插入之前,必须转换为json

ObjectMapper objectMapper=new ObjectMapper();

String fruit_json=objectMapper.writeValueAsString(fruit);

request.source(fruit_json, XContentType.JSON);

IndexResponse response=client.index(request,RequestOptions.DEFAULT);

System.out.println(response.getResult());

// 关闭资源

client.close();

索引修改

局部数据修改

// 创建es客户端

RestHighLevelClient client=new RestHighLevelClient(

RestClient.builder(new HttpHost(“localhost”,9200,“http”))

);

// 修改数据

UpdateRequest request=new UpdateRequest();

request.index(“fruit”).id(“101”);

request.doc(XContentType.JSON,“name”,“橘子”);

UpdateResponse response=client.update(request, RequestOptions.DEFAULT);

System.out.println(“响应状态:”+response.getResult());

查询某条数据

// 创建es客户端

RestHighLevelClient client=new RestHighLevelClient(

RestClient.builder(new HttpHost(“localhost”,9200,“http”))

);

GetRequest request=new GetRequest();

request.index(“fruit”).id(“101”);

GetResponse response=client.get(request,RequestOptions.DEFAULT);

System.out.println(response.getSourceAsString());

删除某条数据

// 创建es客户端

RestHighLevelClient client=new RestHighLevelClient(

RestClient.builder(new HttpHost(“localhost”,9200,“http”))

);

DeleteRequest request=new DeleteRequest();

request.index(“fruit”).id(“101”);

DeleteResponse response=client.delete(request, RequestOptions.DEFAULT);

System.out.println(response);

// 关闭资源

client.close();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值