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

Posted Vincent9847

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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":
        
    

以上是关于Elasticsearch学习笔记3:关于索引文档的CRUD操作(kibana)的主要内容,如果未能解决你的问题,请参考以下文章

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

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

Elasticsearch - 尚硅谷(3. Elasticsearch 基本操作_上)学习笔记

ElasticSearch 学习笔记总结

Elasticsearch学习笔记-p3(RestClient操作文档)

ElasticSearch 8 学习笔记总结