下一篇:Elasticsearch - 中文分词器(IK) 安装和简单使用
ELK
Kibana
简介:Kibana 可以为Elasticsearch中索引的数据提供搜索和数据可视化功能。
- Kibana是操作ElasticSearch的图形化工具,也可生成各种图表
- 也可以作为用户界面来监测和管理 Elastic Stack 集群
- 还可以作为基于 Elastic Stack 所开发内置解决方案的汇集中心
官网下载地址( 下载的要和你的Elasticsearch版本一致 )
(链接:https://pan.baidu.com/s/1Jqp8bU3tSDDqmVA41I0kTQ 提取码:op1p)
- 解压(安装目录/bin/kibana.bat)启动
要先启动 elasticsearch.bat
-
默认连接elasticsearch端口号
路径:kibana\config\bibana.yml
-
成功
-
- 控制台
基于RESTFul API操作
1、索引管理
-
创建索引:相当于数据库
PUT 索引名 { }
-
查询索引
GET 索引名
-
删除索引
DELETE 删除
2、映射操作
-
创建
PUT 索引名/_mapping/类型 { "properties" : { "字段": { "参数名": "参数值" } } } 参数名 : type,表示类型 参数值: 字符串:text(可分词)、keyword(不可分词) 数值 时间
2.1 查看映射
-
语法
GET 索引号/_mapping
-
实例
GET czxy/_mapping
3、数据操作
3.1 添加数据:无id
-
语法:
POST _index/_type { "属性":"值", "属性2:"值2 }
-
实例
POST czxy/book { "title": "Java编程思想", "images": "1.jpg", "price": 58.3 } POST czxy/book { "title": "Java核心技术", "images": "2.jpg", "price": 99.9 } POST czxy/book { "title": "PHP编程思想", "images": "3.jpg", "price": 68.8 }
3.2 添加或更新数据:有id
-
语法:如果id存在将更新,如果不存在,将添加
PUT _index/_type/id { "属性":"值", "属性2:"值2 }
-
实例
PUT czxy/book/b001 { "title": "女神养成记II", "images": "美女.jpg", "price": 88.88 } PUT czxy/book/b002 { "title": "坏蛋是怎么炼成的", "images": "gg图.jpg", "price": 66.66 }
3.3 删除数据
-
语法:
DELETE _index/_type/id
-
实例
DELETE czxy/book/b002
4、查询操作
4.1 通过id查询
-
语法1:通过id查询所有 (select * from book where id = ?)
GET _index/_type/id
-
语法2:通过id查询部分 ( select title,price from book where id = ?)
GET _index/_type/id?_source=字段,字段2
-
实例
GET /czxy/book/b001
GET /czxy/book/b001?_source=title,price
4.2 查询所有
-
语法1:所有索引库,查询操作,查询所有
GET _search { "query" : { "match_all" : { } } }
-
语法2:指定索引库,查询操作,查询所有
GET /索引库/_search { "query" : { "match_all" : { } } }
-
语法3:指定索引库,查询操作,查询部分列数据
GET /索引库/_search { "query" : { "match_all" : { } }, "_source": ["字段","字段2",....] }
-
实例1:所有库
GET _search { "query": { "match_all": { } } }
-
实例2:指定库
GET /czxy/_search { "query": { "match_all": { } } }
-
实例3:部分数据
GET czxy/_search { "query": { "match_all": { } }, "_source": ["title","price"] }
4.3 关键字查询
-
使用match 处理条件
-
语法:
GET _index/_search { "query" : { "match" : { 字段名: 值 } } }
-
需求:查询title为 “Java编程思想”
- title 类型 text,表示支持分词,只要与“Java编程思想”部分词相同,就可以查询出来
GET czxy/_search { "query": { "match": { "title": "Java编程思想" } } }
4.4 复合查询:must (交集 and)
-
语法:
- 使用 bool 进行多条件拼凑
- 采用 must 、must_not 进行数据过滤
- must 确定留下的数据
- must_not 确定不需要的数据
GET czxy/_search { "query": { "bool": { "must": [ { 关键字查询 } ] } } }
-
实例1:采用多条件进行查询,查询title为 “Java编程思想”
GET czxy/_search { "query": { "bool": { "must": [ { "match": { "title": "Java编程思想" } } ] } } }
-
实例2:采用多条件进行查询,查询title为 “Java编程思想”,不含PHP
#采用多条件进行查询,查询title为 “Java编程思想” GET czxy/_search { "query": { "bool": { "must": [ { "match": { "title": "Java编程思想" } } ], "must_not": [ { "match": { "title": "PHP" } } ] } } }
4.5 复合查询:should (并集 or)
-
语法
GET czxy/_search { "query": { "bool": { "should": [ { 关键字查询 }, .... ] } } }
-
需求:查询“PHP编程思想” ,以及 女神养成记 相关数据
GET czxy/_search { "query": { "bool": { "should": [ { "match": { "title": "PHP编程思想" } }, { "match": { "title": "女神养成记" } } ] } } }
4.6 精准查询:term
-
语法
- 注意:精准查询指定数据类型(数值、布尔、未分词字符串)
GET _index/_search { "query": { "term" : { 字段 } } }
-
需求:查询价格为68.8 信息
GET czxy/_search { "query": { "term": { "price": { "value": 68.8 } } } }
-
结论
- 如果数据未分词,且需要精准查询,使用term
- 普通查询,对数据进行分词处理,使用match
4.7 范围查询:range
-
语法:
GET 索引库/_search { "query": { "range": { "字段": { gt : "大于", lt : "小于", gte : "大于或等于", lte : "小于或等于" } } } }
-
需求:查询价格在60-90之间
GET czxy/_search { "query": { "range": { "price": { "gte": 60, "lte": 90 } } } }
4.8 排序: sort
-
语法
GET czxy/_search { "query": { "match_all": { } }, "sort" : { "字段": { "order" : "排序" //asc 、desc } } }
-
需求:按照价格降序
GET czxy/_search { "query": { "match_all": {} }, "sort": [ { "price": { "order": "desc" } } ] }
4.9 分类:from + size
-
语法
GET czxy/_search { "query": { "match_all": { } }, "from" : 0, //开始索引号,从0开始的 "size" : 2 //每页的个数 }
-
实例
GET czxy/_search { "query": { "match_all": {} }, "from": 3, "size": 2 }