ElasticSearch基操之增删改查

前言

ES里的数据是JSON形式的。

增删改查通过RESTFul 风格(也可以通过client)

端口为9200

四个词

ES(NoSQL)        index         type                    document

SQL                  数据库        表(可选的)      (一条数据)

document有个id,这个作为索引,你可以自己定义这个id(字符串)也可以不写,会自动生成随机字符串

增删改查大法

启动ES后

了解完这几个名词之后我们开始,让我们对这个ES有个基本了解

 

增(默认对于没有的index type自动增加)

curl -X PUT 'localhost:9200/warehouse/fruit/apple' -d '{"name":"苹果","price":8.88,"unit":"元(人民币)","amount":500}'

这句话创建了一个index(数据库)warehouse,创建了一个type(表)fruit,向里面插入了一条记录,记录的id为字符串apple,内容为后面那个json对象

 

image.png

我们来查询看看

查询数据

查询指定id的数据

curl  'localhost:9200/warehouse/fruit/apple'

查询结果如下,查询结果也是个json数据,我们的document就在_source字段

我解释下这个json里的各个字段

_index  哪个数据库

_type   哪个表

_id      索引id

_version 第多少个版本

_found 是否找到

_source document文档,其实就是这条数据的内容

 

image.png如果觉得这个返回的东西看着太别扭了。可以加一个参数  pretty=true

示范如下

curl  'localhost:9200/warehouse/fruit/apple?pretty=true'

 

image.png

同样的方法我

查询所有

(我已事先再次添加了一条数据到/warehouse/fruit下)

curl  'localhost:9200/warehouse/fruit/_search?pretty=true'

 

image.png

自定义条件进行查询

我们可以利用查询表达式进行复杂查询,详见 查询表达式文档

例如查询/warehouse/fruit里名字里包含 果 这个字的数据

curl  'localhost:9200/warehouse/fruit/_search?pretty=true' -d '{"query":{"match":{"name":"果"}}}'

body里的json数据展开来看

{
	"query": {
		"match": {
			"name": "果"
		}
	}
}

其他查询规则仔细看你查询表达式文档

删除数据

删除指定数据

curl -X DELETE 'localhost:9200/warehouse/fruit/apple?pretty=true'

执行结果

 

image.png

查询下所有看是不是真的删除了

curl -X GET 'localhost:9200/warehouse/fruit/_search?pretty=true'

 

image.png

修改数据

整个文档覆盖修改

直接用PUT即可,将要修改的字段放进去,就修改了

curl -X PUT 'localhost:9200/warehouse/fruit/orange?pretty=true' -d '{"price":8.8}'

 

image.png

再次查询可以看到已经被修改

 

image.png

部分修改

curl -X POST 'localhost:9200/warehouse/fruit/orange/_update?pretty=true' -d '{"doc":{"price":9}}'

 

image.png

其他复杂的操作请看文档

https://www.elastic.co/guide/cn/elasticsearch/guide/current/getting-started.html

 

image.png

 

 

posted @ 2020-07-11 04:25  HumorChen99  阅读(2)  评论(0编辑  收藏  举报  来源