目录
一、善假于物、安装Kibana
kibana是什么,Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。
你用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互。
你可以轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。
Kibana使得理解大量数据变得很容易。它简单的、基于浏览器的界面使你能够快速创建和共享动态仪表板,实时显示Elasticsearch查询的变化。
最烦这种长篇废话了,当它是PLSQL/WorkBench/PGAdmin/MogoBooster for elasticsearch就好了。
下载、解压、修改config/kibana.yml、
elasticsearch.url="http://localhost:9200"
运行bin/kibana(.bat)、浏览器输入http://localhost:5601
NOTE Kibana的版本绝对不能比ElasticSearch高,哪怕是高出一个小版本也不行、但也不能低出一个大版本号。当我们在访问elasticsearch的9200端口时会知道elasticsearch的版本。
二、准备测试数据
毕竟,用es的关键是在于查询这些数据。点开左侧菜单的dev Tools,开始用已经会的基本操作造一批数。
POST department/employee/1
{
"name": "yuxiang",
"score": 60,
"tags": ["java","passion","thinker"],
"language": {
"eng": "B",
"jap": "E",
"spa": "E"
}
}
造一波数据之后从discover标签查看。这里要先输入要查索引的正则表达式,如果只要查特定的department索引。就输入这个完整的词。然后从Selected fields里添加我们关注的属性。就能看到如下的数据列表。
三、更复杂的查询
term
# term -> =
# 40分的员工
POST department/employee/_search
{
"query": {
"term": {
"score": 40
}
}
}
terms
# terms 可以实现类似in的用法
# 标签包括lazy或者java的员工
POST department/employee/_search
{
"query": {
"terms": {
"tags": ["lazy", "java"]
}
}
}
range
# range (gt/gte/lt/lte)可以实现 > < between and
# 分数20-45的员工
POST department/employee/_search
{
"query": {
"range": {
"score": {
"gte": 20,
"lt": 45
}
}
}
}
exists
# exists 类似于not null
# 有名字的员工
POST department/employee/_search
{
"query": {
"exists":{
"field": "name"
}
}
}
bool
# bool 完成多条件组合(must-and/must not-!/should-or/minimum_should_match-最少需要满足几个should条件才被查出)
# 除了yuxiang之外/分数40以上/英文A或者日文A的员工
POST department/employee/_search
{
"query": {
"bool":{
"must": [{"range": {
"score": {"gt": 40}
}}],
"must_not": [
{"term": {
"name": "yuxiang"
}}
],
"minimum_should_match": 1,
"should": [
{"match": {
"language.eng": "A"
}},
{"match": {
"language.jap": "A"
}}
]
}
}
}
wildcard
# wildcard 允许你使用正则匹配
# 名字中包含u字母的员工
POST department/employee/_search
{
"query": {
"wildcard":{
"name":"*u*"
}
}
}
regexp
# 更专业的正则用regexp
# 名字以w和y开头的员工
POST department/employee/_search
{
"query": {
"regexp": {
"name": "[y,w].*"
}
}
}
aggs
# aggs类似于groupby
# 按分数分组
POST department/employee/_search
{
"aggs": {
"groupbyscore": {
"terms": {
"field": "score",
"size": 100
}
}
}
}
四、Kibana的其他功能
Kibana还提供了图形化展示数据、筛选数据、监控ElasticSearch状态等等功能。
想学习Kibana更多的使用,点这里。