es基本操作使用
es映射关系(对应数据库)
关系型数据库(比如Mysql) 非关系型数据库(Elasticsearch)
数据库Database 索引Index
表Table 类型Type
数据行Row 文档Document
数据列Column 字段Field
约束 Schema 映射Mapping
————————————————
1.创建索引
PUT /索引名/类型名/文档id
{
请求体
}
创建索引时指定属性名,即映射关系
PUT /索引名/类型名/文档id
{
"mappings":{
"属性名":{
"type":"相关值",
"index":true,//是否索引,通过索引可以查询到
"store":false//备份
}
}
}
2.修改索引
POST /索引名/类型名/文档id/_update
{
"doc":{
"属性名":"修改值"
}
}
3.删除索引
DELETE /索引名/类型名/文档id
eg:delete /test/type1/1,表示删除test索引库中类型(表)为type1中id属性为1的document(记录)。
4.查询索引
GET /索引名/类型名/_search
{
"query":{
"match":{
"name":"张三"
}
}
}
表示查询某一个属性名为name的值为张三的document。
同时通过**_source**属性实现字段的显示或不显示
GET /索引名/类型名/_search
{
"query":{
"match":{
"name":"张三"
}
},
"_source":["name","age"]
}
表示查询结果只显示name和age字段
5.索引排序
GET /索引名/类型名/_search
{
"query":{
"match":{
"name":"张三"
}
},
"sort":{
"age":{
"order":"desc"
}
}
}
按照age字段降序
6.分页查询
GET /索引名/类型名/_search
{
"query":{
"match":{
"name":"张三"
}
},
"from":0,//第几页
"size":10//每一页的记录数
}
表示从第0业查询,每一页10条记录
7.bool查询
GET /索引名/类型名/_search
{
"query":{
"bool":{
"must":[
"match":{
"name":"张三"
},
"match":{
"age":18
}
]
}
}
}
其中,还有should,must_not
8.过滤器
过滤器一般和数值操作有关,是将查询出来的数据进行过滤
GET /索引名/类型名/_search
{
"query":{
"bool":{
"must":[
"match":{
"name":"张三"
}
]
},
"filter":{
"range":{
"age":{
"gte":19,//大于等于
"lte":25//小于对于
}
}
}
}
}
注意:keyword和text,keyword是整个数据作为索引,不会进行分词