详解windows 环境下搭建electricSearch+kibana

 更新时间:2021年5月19日 16:07  
这篇文章主要介绍了windows 环境下搭建electricSearch+kibana,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1.ES7.3.2 + kibana + ik-smart 百度网盘下载地址:https://pan.baidu.com/s/1eCKTYoosXl8NfX37EwjyWA

提取码:ibcf

kibana 操作文档

GET _search
{
  "query": {
    "match_all": {}
  }
}

### 查看集群健康信息
GET /_cat/health?v

### 帮助
GET /_cat/health?help

### 查看集群中节点信息
GET /_cat/nodes?v

### 查看集群中索引信息
GET /_cat/indices?v

### 精简信息
GET /_cat/indices?v&h=health,status,index

### 创建索引
PUT /baizhi

### 删除索引
DELETE /baizhi

### 创建类型mapping
POST /baizhi/user
{
  "user": {
      "properties": { 
        "id":    { "type": "text"  },
        "name":     { "type": "text"  }, 
        "age":      { "type": "integer" },  
        "created":  {
          "type":   "date",
          "format": "strict_date_optional_time || epoch_millis"
        }
      }
  }
}

### 查看类型mapping
GET /baizhi/_mapping

### 新增单个文档
PUT /baizhi/user/1
{
  "name":"zs",
  "title":"张三",
  "age":18,
  "created":"2018-12-25"
}

### 查询所有文档
GET /zpark/user/_search

### 指定id查询单个文档
GET /baizhi/user/1

### 修改单个文档
PUT /baizhi/user/1
{
  "name": "lxs",
  "title": "李小四"
}

### 删除单个文档
DELETE /baizhi/user/1

### 批量新增
POST /baizhi/user/_bulk
{"index":{}}
{"name":"ww","title":"王五","age":18,"created":"2018-12-27"}
{"index":{}}
{"name":"zl","title":"赵六","age":25,"created":"2018-12-27"}

### 批量删除
POST /baizhi/user/_bulk
{"update":{"_id":"K38E728BJ1QbWBSobMEC"}}  
{"doc":{"title":"王小五"}}
{"delete":{"_id":"LH8E728BJ1QbWBSobMEC"}}  

##############进阶##############

########### 查询(Query)

# 批量插入测试数据
POST /zpark/user/_bulk
{"index":{"_id":1}}
{"name":"zs","realname":"张三","age":18,"birthday":"2018-12-27","salary":1000.0,"address":"北京市昌平区沙阳路55号"}
{"index":{"_id":2}}
{"name":"ls","realname":"李四","age":20,"birthday":"2017-10-20","salary":5000.0,"address":"北京市朝阳区三里屯街道21号"}
{"index":{"_id":3}}
{"name":"ww","realname":"王五","age":25,"birthday":"2016-03-15","salary":4300.0,"address":"北京市海淀区中关村大街新中关商城2楼511室"}
{"index":{"_id":4}}
{"name":"zl","realname":"赵六","age":20,"birthday":"2003-04-19","salary":12300.0,"address":"北京市海淀区中关村软件园9号楼211室"}
{"index":{"_id":5}}
{"name":"tq","realname":"田七","age":35,"birthday":"2001-08-11","salary":1403.0,"address":"北京市海淀区西二旗地铁辉煌国际大厦负一楼"}


### 查看所有并按照年龄降序排列
GET /zpark/user/_search
{
  "query": {
    "match_all": {}
  },
  "sort": {
    "age": "desc"
  }
}


### 查询第2页的用户(每页显示2条)
GET /zpark/user/_search
{
  "query": {
    "match_all": {}
  },
  "sort": {
    "age": "desc"
  },
  "from": 2,
  "size": 2 
}

### 查询address在海淀区的所有用户,并高亮
GET /zpark/user/_search
{
  "query": {
    "match": {  
      "address": {
        "analyzer": "ik_max_word",
        "query": "海淀区"
      }
    }
  },
  "highlight": {
    "fields": {        
      "address": {}   
    }
  }
}

### 设置索引分词器
PUT /zpark
{
    "settings" : {
        "index" : {
            "analysis.analyzer.default.type": "ik_smart"
        }
    }
}

### 查询name是zs关键字的用户
GET /zpark/user/_search
{
  "query":{
    "term": {
      "name": {
        "value": "zs"
      }
    }
  }
}

### 查询年龄在20~30岁之间的用户
GET /zpark/user/_search
{
  "query": {
    "range": {
      "age": {
        "gte": 20,
        "lte": 30  
      }
    }
  }
}

### 查询真实姓名以李开头的用户
GET /zpark/user/_search
{
  "query": {
    "prefix": {
      "realname": {
        "value": "李"
      }
    }
  }
}

### 查询名字以s结尾的用户
GET /zpark/user/_search
{
  "query": {
    "wildcard": {
      "name": {
        "value": "*s"
      }
    }
  }
}

### 查询id为1,2,3的用户
GET /zpark/user/_search
{
  "query": {
    "ids": {
      "values": [1,2,3]
    }
  }
}

### 模糊查询realname中包含张关键字的用户
GET /zpark/user/_search
{
  "query": {
    "wildcard": {
      "realname": {"value": "*张*"}
    }
  }
}


### 查询age在15-30岁之间并且name必须通配z*
GET /zpark/user/_search
{
  "query": {
    "bool": {
      "must": [      
        {
          "range": {
            "age": {
              "gte": 15,
              "lte": 30
            }
          }
        },
        {
          "wildcard": {
            "name": {
              "value": "z*"
            }
          }
        }
      ],
      "must_not": [
        {
          "regexp": {
            "name": ".*s"
          }
        }
      ] 
    }
  }
}

############# 过滤器(Filter)
### 其实准确来说,ES中的查询操作分为2种:查询(query)和过滤(filter)。查询即是之前提到的query查询,它(查询)默认会计算每个返回文档的得分,然后根据得分排序。而过滤(filter)只会筛选出符合的文档,并不计算得分,且它可以缓存文档。所以,单从性能考虑,过滤比查询更快。

### 换句话说,过滤适合在大范围筛选数据,而查询则适合精确匹配数据。一般应用时,应先使用过滤操作过滤数据,然后使用查询匹配数据。

### 过滤器使用 ranage filter
GET /zpark/user/_search
{
   "query":{
      "bool": {
        "must": [
          {"match_all": {}}
        ],
        "filter": {        
          "range": {
            "age": {
              "gte": 25
            }
          }
        }
      }
   }
}

### term、terms Filter   term、terms的含义与查询时一致。term用于精确匹配、terms用于多词条匹配
GET /zpark/user/_search
{
   "query":{
      "bool": {
        "must": [
          {"match_all": {}}
        ],
        "filter": {
          "terms": {
            "name": [
              "zs",
              "ls"
            ]
          }
        }
      }
   }
}

### exists filter exists过滤指定字段没有值的文档
GET /zpark/user/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match_all": {}
        }
      ],
      "filter": {   
        "exists": {
          "field": "salary"
        }
      }
    }
  },
  "sort": [
    {
      "_id": {
        "order": "asc"
      }
    }
  ]
}


### ids filter  需要过滤出若干指定_id的文档,可使用标识符过滤器(ids)
GET /zpark/user/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "address": "昌平区"
          }
        }
      ],
      "filter": {
        "ids": {   
          "values": [
            1,
            2,
            3
          ]
        }
      }
    }
  },"highlight": {
    "fields": {
      "address": {}
    }
  }
}

#############聚合(Aggregations)
### 度量(metric)聚合
POST /zpark/user/_search
{
  "aggs": {
    "age_avg": {
      "avg": {"field": "age"}
    }
  }
}

### 先过滤,再进行统计,如:
POST /zpark/user/_search
{ "query": {
    "ids": {
      "values":[1,2,3]
    }
  }, 
  "aggs": {
    "age_avg": {
      "avg": {"field": "age"}
    }
  }
}

### 最大值查询。如:查询员工的最高工资
POST /zpark/user/_search
{
  "aggs": {
    "max_salary": {
      "max": {
        "field": "salary"
      }
    }
  }
}

### 统计查询,一次性统计出某个字段上的常用统计值
POST /zpark/user/_search
{
  "aggs": {
    "max_salary": {
      "stats": {
        "field": "salary"
      }
    }
  }
}

### 桶(bucketing)聚合 自定义区间范围的聚合,我们可以自己手动地划分区间,ES会根据划分出来的区间将数据分配不同的区间上去。
###  统计0-20岁,20-35岁,35~60岁用户人数
POST /zpark/user/_search
{
  "aggs": {
    "age_ranges": {
      "range": {
        "field": "age",
        "ranges": [
          {
            "from": 0,
            "to": 20
          },
          {
            "from": 20,
            "to": 35
          },
          {
            "from": 35,
            "to": 60
          }
        ]
      }
    }
  }
}

### 根据年龄分组,统计相同年龄的用户
POST /zpark/user/_search
{
  "aggs": {
    "age_counts":{
      "terms": {
        "field": "age",
        "size": 2  
      }
    }
  }
}

### 时间区间聚合专门针对date类型的字段,它与Range Aggregation的主要区别是其可以使用时间运算表达式。

### now+10y:表示从现在开始的第10年。
### now+10M:表示从现在开始的第10个月。
### 1990-01-10||+20y:表示从1990-01-01开始后的第20年,即2010-01-01。
### now/y:表示在年位上做舍入运算。
### 统计生日在2018年、2017年、2016年的用户
POST /zpark/user/_search
{
  "aggs": {
    "date_counts": {
      "date_range": {
        "field": "birthday",
        "format": "yyyy-MM-dd", 
        "ranges": [
          {
            "from": "now/y",  
            "to": "now"       
          },
          {
            "from": "now/y-1y",  
            "to":"now/y"         
          },
          {
            "from": "now/y-2y",  
            "to":"now/y-1y"
          }
        ]
      }
    }
  }
}

### 嵌套使用
### 聚合操作是可以嵌套使用的。通过嵌套,可以使得metric类型的聚合操作作用在每一bucket上。我们可以使用ES的嵌套聚合操作来完成稍微复杂一点的统计功能。

### 如:统计每年中用户的最高工资
POST /zpark/user/_search
{
  "aggs": {
    "date_histogram": {            
      "date_histogram": {
        "field": "birthday",
        "interval": "year",
        "format": "yyyy-MM-dd"
      },
      "aggs": {
        "salary_max": {
          "max": {                
            "field": "salary"
          }
        }
      }
    }
  }
}

到此这篇关于windows 环境下搭建electricSearch+kibana的文章就介绍到这了,更多相关windows 环境搭建electricSearch+kibana内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

相关文章

  • Windows VPN服务器配置图文教程 超详细版

    VPN可以虚拟出一个专用网络,让远处的计算机和你相当于处在同一个局域网中,而中间的数据也可以实现加密传输,用处很大,特别是在一些大公司,分公司处在不同的区域。...2016-01-27
  • JS实现不使用图片仿Windows右键菜单效果代码

    本文实例讲述了JS实现不使用图片仿Windows右键菜单效果代码。分享给大家供大家参考,具体如下:这里演示JS不使用图片仿Windows右键菜单效果,这款代码灵活使用了文鼎字,配合CSS和JS做出了这个和系统右键菜单很相似的东东。...2015-10-23
  • Windows Server 2016 上配置 APACHE+SSL+PHP+perl的教程详解

    Windows Server 2016 上配置 APACHE+SSL+PHP+perl怎么配置?小编推荐了一篇介绍Windows Server 2016 上配置 APACHE+SSL+PHP+perl的教程,有需要的同学快来看看吧! ...2017-07-06
  • Linux与Windows喜结连理

    作为一个新生事物,Linux吸引了不少眼球,但是它能否快捷、方便地与Windows资源共享,是一个很重要的问题。大家知道,Windows之间可以利用“网络邻居”来实现资源共享,而Linux...2016-11-25
  • php windows系统探测程序

    function do_command($commandName, $args) { $buffer = ""; if (false === ($command = find_command($commandName))) return false; if ($fp = @popen("$comm...2016-11-25
  • 用cwrsync同步windows下数据的简单配置方法

    rsync是linux下功能强大的同步软件。现在在windows下也可以使用rsync(cwrsync)来同步数据了...2016-01-27
  • Windows下Nginx+PHP5的安装与配置方法

    Nginx 是一个轻量级的高性能 Http WebServer,以事件驱动方式编写,因此相比 Apache 而言,Nginx 更加稳定、性能更好,而且配置简单,资源占用较低。...2016-01-27
  • Windows下Memcache的安装方法

    很多phper不知道如何在Windows下搭建Memcache的开发调试环境,最近个人也在研究Memcache,记录下自己安装搭建的过程。 ...2016-01-27
  • Windows下PHP安装配置PEAR的方法

    PEAR是PHP扩展与应用库(the PHP Extension and Application Repository)的缩写。PEAR库更新很快,它是一个强大的代码仓库,每个PHP程序员都应该掌握的工具。 Windows...2016-11-25
  • C#用Topshelf创建Windows服务的步骤分享

    这篇文章主要给大家介绍了关于C#如何利用Topshelf创建Windows服务的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-06-25
  • Windows Server 2012 R2或2016无法安装.NET Framework 3.5.1的解决方法

    这篇文章主要为大家详细介绍了Windows Server 2012 R2或2016无法安装.NET Framework 3.5.1,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-07-06
  • C#3.0使用EventLog类写Windows事件日志的方法

    这篇文章主要介绍了C#3.0使用EventLog类写Windows事件日志的方法,以简单实例形式分析了C#写windows事件日志的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • Windows PowerShell是啥?看完本文你就懂它了

    这篇文章主要介绍了Windows PowerShell是啥?Windows PowerShell是什么?Windows PowerShell有哪些特性?Windows PowerShell有什么用?看完本文你就懂它了,需要的朋友可以参考下...2020-06-30
  • C# Windows API应用之基于GetDesktopWindow获得桌面所有窗口句柄的方法

    这篇文章主要介绍了C# Windows API应用之基于GetDesktopWindow获得桌面所有窗口句柄的方法,结合实例形式分析了GetDesktopWindow函数用于获取窗口句柄的具体使用方法与相关注意事项,需要的朋友可以参考下...2020-06-25
  • Windows Server 2012安装初体验

    这篇文章主要为大家分享了Windows Server 2012安装初体验,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-11-01
  • 基于Windows API实现遍历所有文件并删除的方法

    这篇文章主要介绍了基于Windows API实现遍历所有文件并删除的方法,是win32应用程序的一个比较典型的文件操作应用技巧,需要的朋友可以参考下...2020-04-25
  • Windows上的MySQL UDF开发

    曾以为Windows版本的MySQL存在不能使用UDF的BUG诸提交了一个bug报告。不过 似乎发现是我搞错了,MySQL的技术支持人员给了非常完美的解答,同大家分享 一下。下边是原文回...2016-11-25
  • Windows系统下Nginx服务器的基本安装和配置方法介绍

    这篇文章主要介绍了Windows系统下Nginx服务器的基本安装和配置方法,文中给出了一个配置文件的实例并作出了些说明,需要的朋友可以参考下...2016-01-27
  • 如何在windows下安装配置python工具Ulipad

    这篇文章主要介绍了如何在windows下安装配置python工具Ulipad,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-10-28
  • 基于Windows API分解路径问题的详解

    本篇文章是对Windows API分解路径进行了详细的分析介绍,需要的朋友参考下...2020-04-25