【ElasticSearch】 三、Elasticsearch 可视化工具,Kibanba 和 DSL语句学习

一、Kibana 介绍

Kibana 是一款开源的数据分析和可视化平台,用于和 Elasticsearch 协作。通过 Kinaba 可以对 Elasticsearch 索引中的数据进行搜索、查看、交互操作,可以很方便的利用图标、表格、地图对数据进行多元化的分析和呈现。

Kibana 可以使数据界面化,基于浏览器的界面可让我们快速创建和分享动态数据仪表板来追踪 Elasticsearch 的实时数据变化。

 

二、Kibana 安装和使用

2.1 下载和安装

# 下载与使用的 elasticsearch 对应的 kibana 版本
docker pull docker.io/kibana:5.6.8

# 安装 kibana 容器
# ELASTICSEARCH_URL 指定要监听和统计的ES
docker run -it -d -e ELASTICSEARCH_URL=http://192.168.234.135:9200 --name kibana --restart=always -p 5601:5601 kibana:5.6.8

2.2 测试

# 访问页面
192.168.234.135:5601

 

三、DSL 语句

DSL 可以帮助我们直接操作 elasticsearch 库中的数据

打开 kibana 的 Dev Tools,建议在 firefox 浏览器打开,它对中文的兼容性更好

# 获取所有索引库信息
GET _cat/indices?v

# 删除索引库
DELETE /userinfo

# 新增索引库
PUT /userinfo

# 添加映射
PUT /user/testinfo/_mapping
{
  "properties": {
    "name": {
      "type": "text",
      "analyzer": "ik_smart",
      "search_analyzer": "ik_smart",
      "store": false
    },
    "city": {
      "type": "text",
      "analyzer": "ik_smart",
      "search_analyzer": "ik_smart",
      "store": false
    },
    "age": {
      "type": "long",
      "store": false
    },
    "description": {
      "type": "text",
      "analyzer": "ik_smart",
      "search_analyzer": "ik_smart",
      "store": false
    }
  }
}

# 新增文档数据
# /【索引】/【索引库】/【第几个】
PUT /user/testinfo/1
{
  "name": "小黄",
  "age": 18,
  "city": "北京",
  "description": "北京的小黄歌"
}
PUT /user/testinfo/2
{
  "name": "小美",
  "age": 18,
  "city": "北京",
  "description": "北京的小美"
}
PUT /user/testinfo/3
{
  "name": "李明",
  "age": 18,
  "city": "北京",
  "description": "北京的大哥"
}

# 获取数据
GET /user/testinfo/1
GET /user/testinfo/2
GET /user/testinfo/3

# 直接替换数据,原始数据会被删除
PUT /user/testinfo/1
{
  "name": "老大"
}

# 修改数据
POST /user/testinfo/1/_update
{
  "doc": {
    "name": "隔壁老王"
  }
}

# 删除数据
DELETE /user/testinfo/3

# 查询数据
GET /user/_search
GET /user/testinfo/_search
GET /user/testinfo/2

# Sort 排序
# 根据 age 降序
Get /user/_search 
{
  "query": {},
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ]
}

# 分页
Get /user/_search 
{
  "query": {},
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ],
  "from": 0,
  "size": 2
}

################# 过滤搜索

# 词项搜索
GET /user/testinfo/_search
{
  "query": {
    "term": {
      "city":"北京"
    }
  }
}

# 多个词项搜索
GET /user/_search
{
  "query": {
    "terms": {
      "city": [
        "北京",
        "武汉"
      ]
    }
  }
}

# 范围过滤
# gte 大于等于 gt 大于
# lte 小于等于 lt 小于
GET /user/_search
{
  "query": {
    "range": {
      "age": {
        "gte": 10,
        "lte": 40
      }
    }
  },
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ]
}

# 查询存在address域的数据
GET /user/_search
{
  "query": {
    "exists": {
      "field": "address"
    }
  }
}

############ 多条件搜索
# must:多条件必须同时满足,等同于 and
# must_not:多个条件必须同时不满足
# should:至少有一个条件满足,等同于or

# 搜索在深圳的用户,且年龄在10-30之间
GET /user/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "city": {
              "value": "深圳"
            }
          }
        },
        {
          "range": {
            "age": {
              "gte": 10,
              "lte": 30
            }
          }
        }
      ]
    }
  }
}

##### 根据某个字符搜索
GET /user/_search
{
  "query": {
    "match": {
      "description": "湖北武汉"
    }
  }
}

# 搜索前缀
GET /user/_search
{
  "query": {
    "prefix": {
      "name": "赵"
    }
  }
}

# 多个域匹配
# description|city 有深圳的数据
GET /user/_search
{
  "query": {
    "multi_match": {
      "query": "深圳", 
      "fields": [
        "city", 
        "description"
      ]
    }
  }
}

















 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值