Elasticsearch学习笔记3:关于索引、文档的CRUD操作(kibana)

一、 

环境:ES 7.6.x 、kibana

一、关于索引的基本操作

1.创建一个索引

 PUT /索引/~类型名/文档id

put /test1/user/1
{
    "name":"xiaoyi",
    "age":3
]

2.指定字段类型

put /test1
{
    "mappings": {
        "properties": {
            "name": {
                "type": "text"
             },
            "age": {
                "type": "long"
             },
            "birthday": {
                "type": "date"
            }
        }
    }
}

3.查看默认信息

get test1

4.修改数据

post /test1/_doc/1/_update
{
    "doc":{
        "name":"xiaoyiyi"
    }
}

5.删除索引

delete test1

二、关于文档的基本操作

1.添加数据

PUT /test1/user/1
{
    "name": "xiaoyi",
    "age": 3,
    "desc": "全干工程师",
    "tags": ["技术宅","温暖","直男"]
}

2.获取数据

get test1/user/1

3.更新数据

更新1:

PUT /test1/user/1
{
    "name": "xiaoyi1",
    "age": 30,
    "desc": "用这种方式更新,假如没有写tags的内容,则更新后tags为空!",
    "tags": ["美女","旅游","唱歌"]
}

更新2:

POST test1/user/1/_update
{
    "doc":{
        "name": “xiaoyi11"
    }
}

4.查询数据

get test1/user/_search?q=name:xiaoyi

三、复杂查询

1.查询query、排序sort、分页

GET test1/user/_search
{
    "query": {                 #查询
        "match": {
            "name": "xiaoyi"
        }
    },
    "sort": [                  #排序
        {
        "age": {
            "order": "asc"
         }
        } 
    ],
    "from": 0,                 #分页:从第几条开始
    "size": 10                 #返回多少条数据(单页面数据)
}

2.布尔值查询

1.多条件查询must(相当于and)

GET test1/user/_search
{
    "query":{
        "bool":{                        #布尔值查询                          
            "must":[                    #多条件查询,must相当于and
                {
                    "match":{
                        "name":"xiaoyi"
                    }
                },
                {
                    "match":{
                        "age":23
                    }
                }
            ]
        }
    }
}

2.或should查询(相当于or)

GET test1/user/_search
{
    "query":{
        "bool":{                        #布尔值查询                          
            "should":[                  #should相当于or
                {
                    "match":{
                        "name":"xiaoyi"
                    }
                },
                {
                    "match":{
                        "age":23
                    }
                }
            ]
        }
    }
}

3.非查询must_not

GET test1/user/_search
{
    "query":{
        "bool":{                        #布尔值查询                          
            "must_not":[                #查询年龄不是23岁的
                {
                    "match":{
                        "age":23
                    }
                }
            ]
        }
    }
}

4.过滤查询

  • gt:大于
  • gte:大于等于
  • lt:小于
  • lte:小于等于
GET test1/user/_search
{
    "query":{
        "bool":{                        #布尔值查询                          
            "must":[                    #多条件查询,must相当于and
                {
                    "match":{
                        "name":"xiaoyi"
                    }
                }
            ],
            "filter":{                  #查询年龄小于10岁的
                "range":{
                    "age":{
                        "lt":10
                    }
                }
            }
        }
    }
}

3.匹配查询

多个条件使用空格隔开,只要满足其中一个结果既可以被查出,这个时候可以通过分值基本的判断

GET test1/user/_search
{
    "query":{
        "match":{
            "tags":"男 技术“
        }
    }
}

4.精确查询

analyzer:"keyword"

analyzer:"standard"

keyword字段类型不会被分词器解析。

精确查询多个值:

GET test1/_search
{
    "query":{
        "bool":{                        #布尔值查询                          
            "should":[                  #should相当于or
                {
                    "term":{
                        "t1":"22"
                    }
                },
                {
                    "term":{
                        "t2":"33"
                    }
                }
            ]
        }
    }
}

5.高亮查询

搜索的相关结果高亮显示!

GET test1/user/_search
{
    "query":{
        "match":{
            "name":"xiaoyi"
        }
    },
    "highlight":{
        "fields":{
           "name"{}
        }
    }
}

自定义搜索高亮显示:(就是自定义标签)

GET test1/_search
{
    "query":{
        "match":{
            "name":"xiaoyi"
        }
    },
    "highlight":{
        "pre_tags":"<p class='key' style='color:red'>",
        "post_tags":"</p>",
        "fields":{
            "name":{}
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值