• ElasticSearch+Kibana(7.13.1) 简单操作


    #创建简单索引,number_of_shards分片数量,number_of_replicas副本数量
    PUT /users
    {
       "settings" : {
          "number_of_shards" : 3,
          "number_of_replicas" : 1
       }
    }
    
    #查看setting
    GET users/_settings
    
    #查看mapping
    GET users/_mapping
    
    
    #创建索引并添加数据
    #也用来更新整个文档,若已有id为1的数据,es会将原文档标记为已删除状态,并新增id为1的新文档,
    #原文档并不会立即消失,但是却无法访问,在后续检索操作过程中,ES会慢慢处理这些已删除数据
    PUT starts/_doc/1
    {
        "first_name" : "xiao",
        "last_name" :  "zhan",
        "age" :        31,
        "about" :      "A handsome boy.",
        "interests": [ "actors", "singer" ]
    }
    
    PUT starts/_doc/2
    {
        "first_name" : "zhang",
        "last_name" :  "zhehan",
        "age" :        31,
        "about" :      "Another handsome boy.",
        "interests": [ "actors", "singer" ]
    }
    
    #更新部分文档
    #es会先根据id为1的文档构建新JSON,然后更新整个JSON,之后会对原文档进行标记删除,并且构建新文档
    POST starts/_update/1
    {
      "doc":{
        "age" : 32
        
      }
    }
    
    #更新部分文档,使用脚本
    POST starts/_update/1
    {
      "script":"ctx._source.age=ctx._source.age+1"
    }
    
    
    #创建新文档,不指定ID
    POST starts/_doc
    {
        "first_name" : "gong",
        "last_name" :  "jun",
        "age" :        30,
        "about" :      "A very good friend of Zhang Zhehan.",
        "interests": [ "actors", "gamer" ]
    }
    
    #创建新文档,指定ID
    POST starts/_doc/6
    {
        "first_name" : "gong",
        "last_name" :  "jun",
        "age" :        30,
        "about" :      "A very good friend of Zhang Zhehan.",
        "interests": [ "actors", "gamer" ]
    }
    
    #删除文档
    DELETE starts/_doc/6
    
    #查看索引文档的内容
    GET starts/_search
    {
        "query": {
            "match_all": {}
        }
    }
    
    #查看索引文档的数量
    GET starts/_count
    {
        "query": {
            "match_all": {}
        }
    }
    
    #获取某一个文档信息
    GET starts/_doc/1
    
    #获取某一个文档的_source字段
    GET starts/_source/1
    
    
    #获取first_name为zhang的文档信息
    GET starts/_search?q=first_name:zhang
    
    
    #使用查询表达式获取first_name为xiao的文档信息
    GET starts/_search
    {
        "query" : {
            "match" : {
                "first_name" : "xiao"
            }
        }
    }
    
    #增加first_name为zhang的文档
    PUT starts/_doc/3
    {
        "first_name" : "zhang",
        "last_name" :  "mingyu",
        "age" :        25,
        "about" :      "My boyfriend.",
        "interests": [ "programmer", "gamer" ]
    }
    
    PUT starts/_doc/4
    {
        "first_name" : "zhang",
        "last_name" :  "dejun",
        "age" :        8,
        "about" :      "The son of gongjun and zhangzhehan.",
        "interests": [ "programmer", "gamer" ]
    }
    
    #含过滤器的查询,年龄大于30的first_name为zhang的文档信息
    GET starts/_search
    {
        "query" : {
            "bool": {
                "must": {
                    "match" : {
                        "first_name" : "zhang" 
                    }
                },
                "filter": {
                    "range" : {
                        "age" : { "gt" : 30 } 
                    }
                }
            }
        }
    }
    
    #全文检索,分词检索,结果按相关度自动降序排列
    GET starts/_search
    {
        "query" : {
            "match" : {
                "about" : "a handsome boy"
            }
        }
    }
    
    
    #短语检索
    GET starts/_search
    {
        "query" : {
            "match_phrase" : {
                "about" : "handsome boy"
            }
        }
    }
    
    #短语检索,对比全文检索
    GET starts/_search
    {
        "query" : {
            "match_phrase" : {
                "about" : "a handsome boy"
            }
        }
    }
    
    #高亮检索
    GET starts/_search
    {
        "query" : {
            "match_phrase" : {
                "about" : "handsome"
            }
        },
        "highlight": {
            "fields" : {
                "about" : {}
            }
        }
    }
    
    #高亮检索,自定义高亮标签
    GET starts/_search
    {
        "query" : {
            "match_phrase" : {
                "about" : "handsome"
            }
        },
        "highlight": {
            "pre_tags" : ["<tag1>"],
            "post_tags" : ["</tag1>"],
            "fields" : {
                "about" : {}
            }
        }
    }
    
    #聚合,被聚合的字段
    GET starts/_search
    {
      "aggs": {
        "all_interests": {
          "terms": { "field": "interests.keyword" }
        }
      }
    }
    
    #聚合+全文检索
    GET starts/_search
    {
      "query": {
        "match": {
          "first_name": "zhang"
        }
      },
      "aggs": {
        "all_interests": {
          "terms": {
            "field": "interests.keyword"
          }
        }
      }
    }
    
    #聚合+分级汇总
    GET starts/_search
    {
        "query": {
          "match": {
            "first_name": "zhang"
          }
        },
        "aggs" : {
            "all_interests" : {
                "terms" : { "field" : "interests.keyword" },
                "aggs" : {
                    "avg_age" : {
                        "avg" : { "field" : "age" }
                    }
                }
            }
        }
    }
  • 相关阅读:
    谈谈团队文化
    ubifs性能优化分析
    ubifs总体设计分析
    分层网络模型(二)
    哎,老了之display-box
    http协议
    box-shadow,text-shadow
    nth-child,nth-last-child,after,before,tab-highlight-color,first-child,last-child
    转载之html特殊字符的html,js,css写法汇总
    一天学习一点之express demo
  • 原文地址:https://www.cnblogs.com/wulisz/p/14875286.html
Copyright © 2020-2023  润新知