Elasticsearch一些增删改查的总结
环境Centos7+Es 5.x
简单介绍下ES的原理:
1,索引 --相当于传统关系型数据库的database或schema
2,类型 --相当于传统关系型数据库的table
3,id --相当于传统关系型数据库的行row
4,_source --这当中的每个字段相当于传统关系型数据库的列column
5,分片 --索引的拷贝,一是为了安全,而是分布式提高性能,相当于传统关系型数据库中master-master or master-slave结构
6,节点 --集群中的每个成员 --相当于传统关系型数据库集群中的每个实例(oracle)
下面我们看看es的普通crud:
1、创建一个索引
PUT car
{
"mappings": {
"benz": {
"properties": {
"date": {
"type": "date"
}
}
}
}
}
比如我们创建了一个名称为car的索引,类型为benz,添加了一个元数据date,执行结果:
这时,我们想在benz类型中添加一个字段属性:
我们往index为car,类型为benz的索引中添加了一个字段english_title,字段类型为字符串,采用英文分析器。
我们尝试往这个索引中添加内容:
这里的id是自动生成的,当然我们也可以指定id,如下:
获取刚添加id为1的数据:
获取索引car类型为benz下的所有数据:
当然也可以直接put或post新增曾端会自己添加,如索引、类型都没有也会自动创建:
POST /car/benz
{
"price":"30",
"color":"black",
"english_title":"CCTV are Say good!"
}
删除一个或多个索引:
从一个类型中删除一条数据:
更新一条数据:
1)添加
2)查看该条数据
3)更新该条数据
4)查看更新后的数据
2、多索引多类型查询
1)查询索引website,sky下所有类型
2)查询索引website,sky下类型eurape,blog类型数据
3、分页查询
1)如果数据较多,想限制显示数量,如显示1-10共10条
4、简单的条件搜索
1)查询所有索引中所有类型为blog,date字段为2014/01/01的字段
注意看左边的结果,能完全匹配的是id为AVm1so4Nsrq782OZqS8R的这条,下面那条只是相似,搜索引擎的优势就出来了,即使不完全一样也会把数据带出来,那那条数据是我们真正想要的(可能更匹配的)那就看_score字段了,分值越高越匹配。
2)查询多个字段
由于篇幅问题,我们见下一篇