目录
1.elasticsearch基本增删改查
2.两种查询方法
3.match和match_all函数
4.sort排序
5.分页
6.bool索引
一、基本增删改查
1.增加文档并填写数据
put 索引/_doc/id
2.查看文档数据
get/索引/_doc/_search (查看所有文档数据)
3.修改文档
post 索引/_doc/id/_update {
“doc”:{“要修改的字段”:”修改的数据”}
}
列如修改第一个文档中的性别为famale
4.删除文档
post/索引/_doc/_delete_by_query? q=关键字(根据条件删除)
二、查询的两种方式
1.根据关键词查询
列如查询性别为男性的文档
get/索引/doc/_search?q={"gender":"male"}
2 DSL方法查询
查询年龄为23岁的文档
GET s1/_doc/_search
{
“query”:{
“Match”:{
“age”:23
}
}
}
三、match函数和match_all函数
1.match函数方法见上(DSL查询方式)
2.match_all函数 查询所有文档
GET s1/_doc/_search
{
"query":{
"match_all":{
}
}
}
四、sort排序
sort排序是对数字类型的数据进行一个排序
列如对年龄做降序排序
GET s1/_doc/_search
{
"query":{
"match_all":{}
},
"sort":[
{
"age":{
"order":"desc"
}
}
]
}
其中desc是降序 asc是升序
五、分页
当数据量过大时不能将数据通过一个页面显示出来,就需要分页处理
GET s1/_doc/_search
{
"query":{
"match_all":{}
},
"from":0,
"size":2
}
from表示起始页
size表示从第一条向后查询几条
列如 from:2 size:2 表示是查询第三第四条数据
六、bool索引
1.bool索引存在三个关键词 should、 must、 must not
2.查询年龄为23或者性别为男性的文档
GET s1/_search
{
"query": {
"bool": {
"should": [
{
"match": {
"age": "14"
}
},
{
"match": {
"name": "housi"
}
}
]
}
}
}
3.查询年龄为81并且性别为male的文档
GET s1/_search
{
"query":{
"bool": {
"must": [
{
"match": {
"name": "zhouqi"
}
},
{
"match":{
"gender":"male"
}
}
]
}
}
}
4.查询性别为既不是male年龄也不是23的数据
GET s1/_search
{
"query": {
"bool": {
"must_not": [
{
"match": {
"gender": "male"
}
},
{
"match": {
"age": 23
}
}
]
}
}
}
5.查询年龄大于20并且性别为famale的文档
首先用到了match函数先将性别为男的数据提取出来,再用filter函数将年龄大于20的数据提取出来。
其中用到了 filter-range函数 其中gte表示大于等于 gt表示大于 lt表示小于 lte表示小于等于1
GET s1/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"gender": "female"
}
}
],
"filter": [
{"range": {
"age": {
"gte": 18
}
}}
]
}
}
}
6.查询年龄大于23的非男性
先用must_not选出不是男性的数据在使用filter进行过滤
GET s1/_search
{
"query": {
"bool": {
"must_not": [
{
"match": {
"gender": "male"
}
}
],
"filter": [
{
"range": {
"age":{
"gte":18
}
}
}
]
}
}
}