Elasticsearch基本API使用

本文详细介绍了Elasticsearch的基本API使用,包括创建和删除索引、插入和更新数据、搜索操作以及各种查询方式如全文搜索、DSL搜索和聚合函数。还探讨了中文分词和Elasticsearch的分词器设置,如IK分词器的安装和测试。
摘要由CSDN通过智能技术生成

前面文章介绍了Elasticsearch的搭建,使用Kibana发送指令,使用Elasticsearch-Head监控。本文主要介绍Elasticsearch基本API使用,以及怎么在Elasticsearch-Head监控页面查看Elasticsearch相关的信息。

我们可以通过后台静默启动Elasticsearch,Elasticsearch-Head以及Kibana:

在/opt/elasticsearch-7.3.2/bin目录下,执行 ./elasticsearch -d   访问localhost:9200

在/opt/kibana-7.3.2-linux-x86_64/bin目录下,执行 nohup ./kibana --allow-root &   访问192.168.0.103:5601

在 /opt/elasticsearch-head-master目录下,执行npm run start  访问192.168.0.103:9100

如果报npm不存在但是前面又安装过,那么查看是不是配置文件没生效,执行source /etc/profile

一.RESTful API

1.创建空索引

PUT /yang
{
  "settings": {
    "number_of_shards": 2,   //分片数为2
    "number_of_replicas": 0  //不使用副本
  }
}

由于没有设置副本数所以不需要副本节点,那么集群健康值就是green健康;但是如果修改副本数且没有部署副本节点的话,集群健康值就会变成yellow

PUT /yang/_settings
{
"number_of_replicas": 1  //设置副本数
}

但是在不重建分片的情况下“分片数”是不能修改的,修改主分片数就会提示报错,因为数据是基于分片数进行hash得到要存储的分片位置,如果中途把分片数修改了,那么数据存储就会出问题。

PUT /yang/_settings
{
    "number_of_shards": 1
}

2.删除索引

DELETE /yang

3.插入数据

POST /yang/_doc/1001                  
{
  "id":1, 
  "name":"zhangsan",
  "age":18
}

如果不指定id,则ES会自动帮我们生成一个Id

POST /yang/_doc
{
  "id":2000,
  "name":"xiaoming",
  "age":30
}

4.更新数据

在Elasticsearch中,文档数据是不能修改的,但是可以通过覆盖的方式进行更新

POST /yang/_doc/1001   
{
  "id":2000,
  "name":"xiaoming",
  "age":20,
  "sex":"男"
}

修改ID为1001的记录,此时ES中ID是1001的记录就会被修改,同时修改后该记录的version版本会加1

ES支持局部更新:

其实es内部对partial update的实际执行和传统的全量替换方式是几乎一样的,其步骤如下

  1. 内部先获取到对应的document;
  2. 将传递过来的field更新到document的json中(这一步实质上也是一样的);
  3. 将老的document标记为deleted(到一定时候才会物理删除);
  4. 将修改后的新的document创建出来

替换和更新的不同:替换是每次都会去替换,更新是有新的东西就更新,没有新的修改就不更新,更新比替换的性能好

5.删除数据

DELETE /yang/_doc/1001

删除索引的某些记录,会将记录标记为deleted状态,同时版本也会加1,执行后ES中会删掉这条记录。

删除索引:

DELETE /yang

6.根据id搜索数据

GET /yang/_doc/1001

6.1搜索全部数据

GET /yang/_search    默认最多返回10条数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值