ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)

ElasticSearch 安装

声明 JDK1.8,最低要求!ElasticSearch客户端,界面工具,ik分词器版本必须一致!

Java开发,ElasticSearch 的版本和我们之后对应的JAVA的核心Jar包,版本对应!JDK环境是正常!

下载:https://www.elastic.co/cn/downloads/elasticsearch

华为镜像下载地址:

ElasticSearch: https://mirrors.huaweicloud.com/elasticsearch/?C=N&O=D
logstash: https://mirrors.huaweicloud.com/logstash/?C=N&O=D
kibana: https://mirrors.huaweicloud.com/kibana/?C=N&O=D

bin 启动文件
config 配置文件
	log4j2 日志配置文件
		jvm.options java 虚拟机相关的配置
		elasticsearch.yml  elasticsearch 的配置文件! 默认端口:9200! 跨域!
lib 相关jar 
logs   日志!
modules 功能模块
plgins  插件 ik 分词器

下载使用华为镜像下载

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第1张图片

选择windows 10版本 下载

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第2张图片

下载完成,直接解压启动

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第3张图片

选择bat 脚本启动

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第4张图片

访问 默认端口 http://localhost:9200

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第5张图片

了解 ELK

ELK 是 ElasticSearch 、Logstash、kibana 三大开源框架首字母大写简称,市面上也被称为Elastic Stack 。其中 ElasticSearch是一个基于Lucene,分布式,通过 Restful 方式进行交互的近实时搜索平台框架。像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用 ElasticSearch 作为底层支持框架,可见ElasticSearch 提供 的搜索能力确实强大,失眠上很多时候我们简称ElasticSearch为es。 Logstash 是ELK 的中央数据流引擎,用于从不同目标(文件/数据存储/MQ)收集的不同格式数据,经过过滤后支持输出到不同目的地(文件/MQ/redis/elasticearch/kafka等)。Kibana可以将 elasticsearch 的数据通过友好的页面展示出来,提供实时分析的功能。

市面上很多开发只要提到ELK 能够一致说出它是一个日志分析架构技术栈总称,但实际ElK不仅仅适用于日志分析,它还可以支持其他任何数据分析和收集的场景,日志分析和手机只是更具有代表性。并非唯一性。
ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第6张图片

head 插件安装

下载: https://github.com/mobz/elasticsearch-head

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第7张图片

运行说明
ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第8张图片

解压

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第9张图片

运行,执行npm install 更新 (需要安装 node.js)

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第10张图片

执行 npm run start

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第11张图片
ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第12张图片

出现head 请求跨域以下情况,修改 elasticsearch.yml 配置文件

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第13张图片

http.cors.enabled: true
http.cors.allow-origin: "*"

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第14张图片

因为es默认不支持跨域,我们修改让他支持以下就好了

Ik分词器插件

什么是Ik 分词器?

分词:即把一段中文或者别的划分为一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比如 我爱JAVA 会被分为 “我”,“爱”,“JAVA”,这显然是不符合要求的,所以我们需要安装中文分词器IK来解决问题

如果要使用中文,建议使用 ik 分词器。

IK 提供了两个分词算法: IK_smart 和 IK_max_word ,其中 ik_smart 为最少切分,ik_max_word 为最细粒度划分!

安装

1,下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

2,下载完成后,放到 elasticsearch /plugins 该目录下

在这里插入图片描述
ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第15张图片

3,重启 es

kibana 安装

安装 kibana

kibana是一个针对 Elastaicsearch 的开源分析及可视化平台,用来搜索,查看交互存储 在Elasticsearch 索引中的数据。使用Kibana,

可以通过各种图标进行高级数据分析及展示。kibana 让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板实时显示 Elasticsearch 查询动态。设置Kibana 非常简单,无需编码或者额外的基础架构,几分钟内疚可以完成 kibana安装并启动Elasticsearch 索引监测。

下载地址:https://www.elastic.co/cn/downloads/past-releases#kibana

下载解压 启动 就可以了

提示:需要安装node.js 才能启动

汉化

找到该路径汉化文件:D:\java\ElasticSearch\kibana-7.9.3-windows-x86_64\x-pack\plugins\translations\translations
ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第16张图片

1,配置config:D:\java\ElasticSearch\kibana-7.9.3-windows-x86_64\config

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第17张图片

2,打开:kibana.yml

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第18张图片

3,将115行 改为
ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第19张图片

启动

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第20张图片

测试

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第21张图片

使用 ik_smart 和 ik_max_word 测试

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第22张图片
ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第23张图片

自定义 扩展字典;该路径下D:\java\ElasticSearch\elasticsearch-7.9.3\plugins\elasticsearch-analysis-ik-7.9.3\config
ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第24张图片

以后的话,我们需要自己配置 分词就在自己定义的 dic文件中进行配置即可~

Rest 风格说明

一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

基本Rest命令说明:

method url地址 描述
PUT localhost:9200/索引名称/类型名称/文档id 创建文档(指定文档id)
POST localhost:9200/索引名称/类型名称 创建文档(随机文档id)
POST localhost:9200/索引名称/类型名称/文档id/_update 修改文档
DELETE localhost:9200/索引名称/类型名称/文档id 删除文档
GET localhost:9200/索引名称/类型名称/文档id 查询文档通过文档id
POST localhost:9200/索引名称/类型名称/_search 查询所有数据

创建一个索引

PUT /索引名/类型名称/文档id
{请求体}

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第25张图片

创建成功

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第26张图片

那么name 这个字段 用不用指定类型呢。 关系型数据库是需要指定类型的

  • 字符串类型 text,keyword
  • 数值类型 long,integer,short ,byte,double,float,half,float,scaled float
  • 日期类型 date
  • 布尔类型 boolean
  • 二进制类型 binary
  • 等等

指定类型创建规则, (这里其实相当于 mysql 建表)

PUT /test2
{
  "mappings": {
    "properties": {
      "name":{
            "type":"text"
        },
       "age":{
            "type":"long" 
        }
      }
    }
     
  }
}

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第27张图片
ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第28张图片

GET test2 获得索引信息

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第29张图片

观察 test1 索引 没有 指定类型, es有默认类型

GET test1

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第30张图片

修改提交还是使用 PUT即可。然后覆盖

修改文档

POST /test1/type1/1/_update
{
  "doc":{
     "name": "李四"
  }
}

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第31张图片

修改成功

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第32张图片

删除索引

DELETE test2

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第33张图片

索引test2 已经不存在

ElasticSearch 认识和深入,安装 es、ik、kibana、以及配置使用(二)_第34张图片

复杂条件查询


查询根据 姓名 条件,年龄排序, 分页

GET test1/type1/_search
{
  #查询匹配 名字为张三的
  "query":{
  		"match":{
  		   "name":"张三"
  		}
  }#根据年龄排序
  "sort":[{
  		"age":{
  			"order":"asc"
  		}
  }],
  #分页 从0条开始 返回10条数据 
  "from":0,
  "size":10
  
}

多条件精确查询,根据 bool 关键字 进行多条件关键字查询

GET test1/type1/_search
{
	"query":{
        "bool":{
        	"must":[
        		{
                    "match":{
                        "name":"java"
                    }
                },
                {
                     "match":{
                        "age":"3"
                 	  }
                 }
        	]
        }
     }

}

must : 相当于 sql 里面的 and

should :相当于 sql 里面的 or

must_not : 相当于 sql 里面的 not

查询条件过滤,过滤年龄大于5岁的

GET test1/type1/_search
{
	"query":{
        "bool":{
        	"must":[
        		{
                    "match":{
                        "name":"java"
                    }
                }
        	],
        	"filter":{
        		"range":{
        			"age":{
        				"gt":5
        			}
        		}
        	}
        	
        }
     }
}

查询条件过滤,过滤年龄小于5岁的

GET test1/type1/_search
{
	"query":{
        "bool":{
        	"must":[
        		{
                    "match":{
                        "name":"java"
                    }
                }
        	],
        	"filter":{
        		"range":{
        			"age":{
        				"lt":5
        			}
        		}
        	}
        	
        }
     }
}
  • gt 大于
  • gte 大于等于
  • lt 小于
  • lte 小于等于

多个条件过滤

GET test1/type1/_search
{
	"query":{
        "bool":{
        	"must":[
        		{
                    "match":{
                        "name":"java"
                    }
                }
        	],
        	"filter":{
        		"range":{
        			"age":{
        			    "gte":25
        				"lte30
        			}
        		}
        	}
        	
        }
     }
}

匹配多个条件

GET test1/type1/_search
{
	"query":{
        "match":{
        	"name":"java  男“
        }
     }
}

精确查询

term 查询是直接通过 倒排索引指定的词条进程精确查找

关于分词:

  • term ,直接查询精确的
  • match,会使用分词器解析!(先分析文档,然后再通过分析的文档进行查询)
    • text,会被分词器解析
    • keyword,不会被分词器解析

高亮查询

GET test1/type1/ _search
{
	"query":{
		"match":{
			"name":“java”
		}
	},
	"highlight":{
	    #自定义高亮颜色
		"pre_tags":"

", "post_tags":"

"
, "fields":{ “name":{} } } }

你可能感兴趣的:(ElasticSearch,elasticsearch,kibana,运维,zookeeper,大数据)