详解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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解Nginx反向代理实现Kibana登录认证功能

    Kibana 5.5 版后,已不支持认证功能,也就是说,直接打开页面就能管理,想想都不安全,不过官方提供了 X-Pack 认证,但有时间限制.毕竟X-Pack是商业版. 下面我将操作如何使用Nginx反向代理实现kibana的认证功能. 先决条件: <Centos 7 源码编译安装 Nginx> 安装Apache Httpd 密码生成工具 $ yum install httpd-tools -y 生成Kibana认证密码 $ mkdir -p /usr/local/nginx/conf/pas

  • 详解Docker下使用Elasticsearch可视化Kibana

    Kibana 作为Elasticsearch优秀的可视化的开源分析工具,我们下面使用Docker结合进行最简单的上手演示. docker 使用教程 在这里我们使用Linux系统作为演示 系统:Fedora28 内核: uname -r 4.16.2-300.fc28.x86_64 docker版本 docker --version Docker version 18.03.0-ce, build 0520e24 安装docker-compose sudo curl -L https://gith

  • docker安装elasticsearch和kibana的方法步骤

    现在elasticsearch是比较火的,很多公司都在用,所以如果说还不知道es可能就会被人鄙视了.所以这里我就下决心来学习es,我比较钟爱于docker所有也就使用了docker来安装es,这里会详细介绍下安装的细节以及需要注意的地方.关于docker的安装在这里我就不去说明了,可以自行安装一下就可以了,很简单的,我保证你真的可能会爱上它.这里我使用的电脑是MacBook Pro 如果是linux的话其实基本相同,如果是Windows的话,可能就不太一样了,这里我也没有实际操作过,感兴趣的也可

  • 如何在docker容器内部安装kibana分词器

    步骤: 1.在虚拟机目录下新建docker-compose.yml文件,然后进入yml文件编辑 vi docker-compose.yml 2.在yml文件中添加如下代码: version: "3.1" services: elasticsearch: image: daocloud.io/library/elasticsearch:6.5.4 restart: always container_name: elasticsearch ports: - 9200:9200 #将分词器映

  • elasticsearch kibana简单查询讲解

    一.简单的CRUD操作 1.添加 PUT /index/type/id { "json数据" } 2.查询 GET /index/type/id 3.修改 POST /index/type/id/_update { "doc": { "FIELD": "值" } } 4.删除 DELETE /index/type/id 二.搜索 搜索可以分成六大类 1.query string search 2.query DSL 3.que

  • Docker下安装ElasticSearch和Kibana的示例代码

    1.前言 现在elasticsearch是比较火的,很多公司都在用,所以如果说还不知道es可能就会被人鄙视了.所以这里我就下决心来学习es,我比较钟爱于docker所有也就使用了docker来安装es,这里会详细介绍下安装的细节以及需要注意的地方.关于docker的安装在这里我就不去说明了,可以自行安装一下就可以了,很简单的,我保证你真的可能会爱上它.这里我使用的电脑是MacBook Pro 如果是linux的话其实基本相同,如果是Windows的话,可能就不太一样了,这里我也没有实际操作过,感

  • docker 部署 Elasticsearch kibana及ik分词器详解

    es安装 docker pull elasticsearch:7.4.0 # -d : 后台运行 # -p : 指定宿主机与docker启动容器的端口映射 # --name : 为 elasticsearch 容器起个别名 # -e : 指定为单节点集群模式 # docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.4.0

  • 详解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 /_c

  • 详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)

    本文详细阐述在 Linux 系统中搭建 PHP 环境,由于 PHP 就是由 C 语言编写的,最初也是运行在 Linux 系统中,所以Linux 是 PHP 的最佳环境. 关于本文中使用到的软件,请点击此链接下载. CentOS5.5现在官方已经不再提供,推荐大家使用centos6以上版本: centos6.8下载地址:http://www.jb51.net/softs/499124.html centos7.2下载地址:http://www.jb51.net/softs/499109.html

  • 详解Maven环境的搭建与idea配置

    本文主要介绍了Maven环境的搭建与idea配置,分享给大家,具体如下: Maven 下载: http://maven.apache.org/download.cgi Maven 中央仓库地址:http://search.maven.org 配置maven环境变量 M2_HOME:D:\workspace\maven\apache-maven-3.0.5 Path:;%M2_HOME%/bin; 检查是否成功,打开CMD: Mvn -v mvn install 会将项目生成的构件安装到本地Mav

  • 详解Ubuntu环境下部署Django+uwsgi+nginx总结

    前言 这是我在搭建Django项目时候的过程,拿来总结记录,以备不时之需. 项目采用nginx+uwsgi的搭配方式. 项目依赖包采用 requirements.txt 文件管理的方式. 本地准备工作 确认项目能够运行起来,没有 bug 将当前环境的包导出 pip freeze > requirements.txt 将项目上传到服务器上的 /srv 目录下.这里以 git 的形式为例, 打开终端, 依次输入如下命令: $ git init $ git remote add origin xxx.

  • 详解在Linux下搭建Git服务器

    众所周知,版本系统在开发环境中是必不可少的,但是我们可以把代码免费的托管到GitHub上,如果我们不原意公开项目的源代码,公司又不想付费使用,那么我们可以自己搭建一台Git服务器,可以用Gitosis来管理公钥,还是比较方便的. 搭建环境: 服务器 CentOS6.6 + git(version 1.8.3.1) 客户端 Windows10 + git(version 2.11.1.windows.1) 1. 安装Git相关软件 Linux是服务器端系统,Windows作为客户端系统,分别安装G

  • 详解在CentOS下搭建自己的Git服务器

    首先需要装好CentOS系统,作为测试,你可以选择装在虚拟机上,这样比较方便.这步默认你会,就不讲了. 有了CentOS,那么如何搭建Git服务器呢? 1.首先需要安装Git,可以使用yum源在线安装: [root@localhost Desktop]# yum install -y git 2.创建一个git用户,用来运行git服务 # adduser git 3.初始化git仓库:这里我们选择/data/git/learngit.git来作为我们的git仓库 [root@localhost

  • 详解Linux环境下NodeJS的安装配置(HelloWorld)

    最简单的环境安装,测试helloworld.给初学者!! 安装脚本,请仔细阅读逐行执行: #!/bin/bash #检查是否已经安装 rpm -qa | grep python #查版本 python #最好是重新安装 Python推荐版本( >= v2.5.0 & < 3.0.0 ),否则影响nodejs运行 #进入安装目录 cd /usr/local/ #删除原有安装 rm -rf node rm -rf node-v0.10.29-linux-x64 #解压压缩包 tar -zx

  • 详解Linux环境下使Nginx服务器支持中文url的配置流程

    1:确定你的系统是UTF编码 [root@Tserver ~]# env|grep LANG LANG=en_US.UTF-8 2:NGINX配置文件里默认编码设置为utf-8 server { listen 80; server_name .inginx.com ; index index.html index.htm index.php; root /usr/local/nginx/html/inginx.com; charset utf-8; } 如果是用securecrt 上传文件,请选

  • 详解在Ubuntu下搭建FTP服务器

    后台一直提示wordperss版本和插件有更新,看着碍眼,决定把它们全都更新.不过更新文件需要服务器提供FTP服务,linode也没有提供到FTP,只能自己装一个了.我装的服务器系统是Ubuntu 12.04 LTS,FTP软件当然是选择大名鼎鼎的vsftpd(very secure FTP daemon), 用系统自带的FTP还好Ubuntu装vsftpd还是很简单,一句命令就行: sudo apt-get install vsftpd 命令执行过程中,安装程序会给本地创建一个名为"ftp&q

  • 详解android环境下的即时通讯

    首先了解一下即时通信的概念.通过消息通道 传输消息对象,一个账号发往另外一账号,只要账号在线,可以即时获取到消息,这就是最简单的即使通讯.消息通道可由TCP/IP UDP实现.通俗讲就是把一个人要发送给另外一个人的消息对象(文字,音视频,文件)通过消息通道(C/S实时通信)进行传输的服务.即时通讯应该包括四种形式,在线直传.在线代理.离线代理.离线扩展.在线直传指不经过服务器,直接实现点对点传输.在线代理指消息经过服务器,在服务器实现中转,最后到达目标账号.离线代理指消息经过服务器中转到达目标账

随机推荐