一、安装Elasticsearch:8.10.4(Windows版)
1.1 下载
elasticsearch-8.10.4-windows-x86_64:百度网盘下载连接
elasticsearch-8.10.4-windows-x86_64:官方下载连接
1.2 解压、修改配置文件
解压
修改配置文件config/elasticsearch.yml
# 节点名称(名称任意即可,若不设置则为系统的hostname)
node.name: node-1
# 允许远程访问
network.host: 0.0.0.0
# 设置单节点启动
discovery.type: single-node
# 关闭IP信息下载
ingest.geoip.downloader.enabled: false
修改配置文件config/jvm.options
-Xms512m
-Xmx512m
1.3 启动
打开 cmd 进入到 elasticsearch /bin目录
输入: chcp 65001 :解决中文乱码
接着输入elasticsearch.bat
然后复制es账号密码:
在浏览器输入:
https://127.0.0.1:9200/
二、安装kibana(Window版)
2.1 什么是kibana
Kibana是一个开源的数据分析和可视化平台,它是Elastic Stack的成员之一,设计用于和Elasticsearch协作。用户可以通过Kibana搜索、查看和交互存储在Elasticsearch索引中的数据,并使用各种图表进行高级数据分析及展示。此外,Kibana还提供了基于浏览器的用户界面,可以快速创建仪表板,实时显示Elasticsearch查询动态。
2.2 下载
2.3 解压、修改配置文件
解压
修改配置文件config/kibana.yml
# 国际化 - 中文
i18n.locale: "zh-CN"
server.host: 0.0.0.0
获取es的token
cmd 并进入 elasticsearch 的bin目录
输入
elasticsearch-create-enrollment-token -s kibana
进入到kibana的bin目录
输入 kibana-setup
粘贴token
2.4 启动
双击 bin/kibana.bat
在浏览器输入
http://127.0.0.1:5601
输入启动es的kibana.bat密码
如果忘记复制或者忘记保存了,需要重置es账号密码
cmd 窗口进入 elasticsearch 的 bin目录
输入 elasticsearch-reset-password -u elastic
输入y
保存es和kibana,此时两者的账号密码是一样的
三、Elasticsearch:8.0 的基础语法
3.1 索引操作
① 创建索引
PUT test
再次运行幂等操作,会提示索引已经存在
② 查询索引
GET test
查询不存在的索引 GET test01
③ 查询所有索引
GET _cat/indices
字段详解
| 字段 | 意思 |
|---|---|
| green | 当前服务器健康状态:green(集群完整) yellow(单点正常、集群不完整)red(单点不正常) |
| open | 索引打开、关闭状态 |
| test | 索引名 |
| -KcnVZDtTJCejbYhp7tAgA | 索引统一编号 |
| 1 | 主分片数量 |
| 1 | 副本数量 |
| 0 | 可用文档数量 |
| 0 | 文档删除状态(逻辑删除) |
| 248b | 主分片和副分片整体占空间大小 |
| 248b | 主分片占空间大小 |
④ 删除索引
DELETE test01
删除一个不存在的索引,同样会报错
3.2 文档操作
① 创建文档
PUT test/_doc/1001
{
"name" : "小黄",
"sex" : "雄"
}
② 查询文档
GET test/_doc/1001
③ 修改文档
PUT test/_doc/1001
{
"name" : "小黄",
"sex" : "雄",
"age" : 18
}
如果修改的文档内容比之前的少,则少的内容直接丢失
④ 删除文档
DELETE test/_doc/1001
⑤ 查询所有文档
GET test/_search
3.3 条件查询
准备数据
POST test/_doc/1002
{
"name" : "小黄",
"sex" : "雄"
}
POST test/_doc/1003
{
"name" : "黄",
"sex" : "雄"
}
POST test/_doc/1004
{
"name" : "小",
"sex" : "雄"
}
①查询字段
GET test/_search
{
"query": {
"match": {
"name": "小"
}
}
}
GET test/_search
{
"query": {
"match": {
"name": "小黄"
}
}
}
GET test/_search
{
"_source": ["name"],
"query": {
"terms": {
"name": ["小"]
}
}
}
3.4 聚合搜索
新增三条文档
POST test1/_doc/2002
{
"name" : "小黄",
"sex" : "雄",
"age" : 1
}
POST test1/_doc/2003
{
"name" : "黄",
"sex" : "雄",
"age" : 2
}
POST test1/_doc/2004
{
"name" : "小",
"sex" : "雄",
"age" : 3
}
①平均值
POST test1/_search
{
"aggs": {
"avg_age": {
"avg": {
"field": "age"
}
}
}
}
②求和
POST test1/_search
{
"aggs": {
"sum_age": {
"sum": {
"field": "age"
}
}
}
}
③最大值
POST test1/_search
{
"aggs": {
"max_age": {
"max": {
"field": "age"
}
}
}
}
3.5 索引模板
-
ES的索引模板(Index templates)是用于创建新索引的一种预定义模板。这个模板主要包含两部分:settings(设置)和mappings(映射)。
-
通过索引模板,可以将已经创建好的某个索引的参数设置(如分片数、副本数、tranlog同步条件、refresh等)和索引映射保存下来。在创建新索引时,只需指定要使用的模板名,就可以直接重用该模板中已经定义好的设置和映射。这种方式可以简化索引的创建过程,并确保多个索引之间具有一致的结构和配置。
① 创建模板
PUT _index_template/test_template
{
"index_patterns": ["*"], // 匹配所有索引名称,您可以根据需要修改这里的模式
"template": {
"mappings": {
"properties": {
"name": {
"type": "text"
},
"sex": {
"type": "keyword"
}
}
}
},
"priority": 1, // 优先级,如果有多个模板匹配,将使用优先级最高的模板
"version": 1, // 模板版本,用于后续管理
"_meta": {
"description": "Test index template for defining name as text and sex as keyword"
}
}
index_patterns设置为["*"],意味着这个模板会匹配所有新创建的索引。在实际使用中,您应该根据需要调整这个模式,以确保模板只应用于特定的索引。例如,如果您希望模板仅应用于以test_开头的索引,则可以将index_patterns设置为["test_*"]。template部分定义了索引的映射(mappings),其中name字段被设置为text类型,适用于全文搜索,而sex字段被设置为keyword类型,适用于关键词搜索和聚合。priority设置了模板的优先级,如果多个模板可以匹配同一个索引,Elasticsearch将使用优先级最高的模板。version用于指定模板的版本号,这在您后续需要更新或管理模板时很有用。_meta部分是可选的,用于提供有关模板的额外信息,如描述。
② 查看模板
GET _index_template/test_template
3.6 中文分词
① 什么是IK分词器
ES的IK分词器是一种基于中文文本的分词器,是Elasticsearch中文分词的一种实现。它采用了自然语言处理技术,可以将中文文本进行切分,抽取出其中的词汇,从而提高搜索引擎对中文文本的搜索和检索效率。这种分词器的原理是使用“正向最大匹配”和“逆向最大匹配”的分词算法,通过对文本进行多次切分,最终确定最优的分词结果。IK分词器支持细粒度分词、多种分词模式,还可以支持自定义词典和拼音分词,且易于集成和使用。总的来说,IK分词器是一款功能全面、高效实用的中文分词工具,可广泛应用于各种中文文本处理场景。
因为es会把每个中文当成一个关键字,比如我是一个好人,这五个字都是关键字,我们一般希望是,我、是、好人、这四个是关键字,因此需要IK分词器
② 安装Ik分词器
elasticsearch-analysis-ik-8.10.4:百度网盘链接
elasticsearch-analysis-ik-8.10.4:官方链接
③解压到elasticsearch-8.10.4/plugins
在plugins新建一个文件夹elasticsearch-analysis-ik-8.10.4 否则es会闪退
重启es
④ 使用IK分词器
GET _analyze
{
"analyzer": "standard",
"text": ["我是一个好人"]
}
ik_smart: 最少切分
GET _analyze
{
"analyzer": "ik_smart",
"text": ["我是一个学生"]
}
Ik_max_word:最细粒度划分
GET _analyze
{
"analyzer": "Ik_max_word",
"text": ["我是一个学生"]
}

四、总结
本文全面介绍了Elasticsearch和Kibana的安装与配置,深入探究了Elasticsearch在索引管理、文档操作、条件查询、聚合搜索以及索引模板应用等方面的基础语法。此外,还重点介绍了IK分词器的安装与使用,从而显著增强了Elasticsearch在中文文本处理上的能力。通过本文的详尽指引,读者不仅能顺利搭建起Elasticsearch和Kibana系统,更能掌握其核心操作技巧,实现数据处理效率的多倍提升,为构建强大、高效的搜索与数据分析解决方案提供了有力支撑。