Elasticsearch02-安装7.x

零、文章目录

Elasticsearch02-安装7.x

1、Windows安装Elasticsearch

(1)JDK安装
  • Elasticsearch是基于java开发的,所以需要安装JDK。
  • 我们安装的Elasticsearch版本是7.15,对应JDK至少1.8版本以上。
  • 也可以不安装jdk,程序启动会自动到es目录下启动内置的jdk。
  • 安装完成验证版本:java -version
(2)下载
(3)安装
  • Windows 版的 Elasticsearch 的安装很简单,解压即安装完毕,目录结构如下
  • 目录结构说明如下:
文件夹/文件名称 说明
bin 存放可执行文件和脚本的目录。
config 存放配置文件的目录,通常包含应用程序的设置。
jdk 存放Java开发工具包(JDK)的目录,可能包含Java运行环境和开发工具。
lib 存放库文件的目录,通常包含应用程序运行所需的依赖库。
logs 存放日志文件的目录,用于记录应用程序的运行信息和错误信息。
modules 存放模块文件的目录,可能包含应用程序的可插拔组件或插件。
plugins 存放插件的目录,通常用于扩展应用程序的功能。
LICENSE.txt 许可证文件,包含有关软件使用权限和限制的法律信息。
NOTICE.txt 通知文件,可能包含有关软件的额外信息,如版权声明、第三方库的致谢等。
README.asciidoc 说明文件,通常以ASCIIDoc格式编写,提供有关如何安装、配置和使用软件的指导。
(4)配置文件
  • 配置文件在config/elasticsearch.yml
  • 常用的配置项如下
yaml 复制代码
cluster.name: 
    配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称。
node.name:
    节点名,通常一台物理服务器就是一个节点,es会默认随机指定一个名字,建议指定一个有意义的名称,方便管理
    一个或多个节点组成一个cluster集群,集群是一个逻辑的概念,节点是物理概念,后边章节会详细介绍。
path.conf: 
    设置配置文件的存储路径,tar或zip包安装默认在es根目录下的config文件夹,rpm安装默认在/etc/ elasticsearch
path.data:
    设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开。
path.logs:
    设置日志文件的存储路径,默认是es根目录下的logs文件夹
path.plugins: 
    设置插件的存放路径,默认是es根目录下的plugins文件夹
bootstrap.memory_lock: true
    设置为true可以锁住ES使用的内存,避免内存与swap分区交换数据。
network.host: 
    设置绑定主机的ip地址,设置为0.0.0.0表示绑定任何ip,允许外网访问,生产环境建议设置为具体的ip。
http.port: 9200
    设置对外服务的http端口,默认为9200。
transport.tcp.port: 9300  集群结点之间通信端口
node.master: 
    指定该节点是否有资格被选举成为master结点,默认是true,如果原来的master宕机会重新选举新的master。
node.data: 
    指定该节点是否存储索引数据,默认为true。
discovery.zen.ping.unicast.hosts: ["host1:port", "host2:port", "..."]
    设置集群中master节点的初始列表。
discovery.zen.ping.timeout: 3s
    设置ES自动发现节点连接超时的时间,默认为3秒,如果网络延迟高可设置大些。
discovery.zen.minimum_master_nodes:
    主结点数量的最少值 ,此值的公式为:(master_eligible_nodes / 2) + 1 ,比如:有3个符合要求的主结点,那么这里要设置为2。
node.max_local_storage_nodes: 
    单机允许的最大存储结点数,通常单机启动一个结点建议设置为1,开发环境如果单机启动多个节点可设置大于1。
(5)启动并检查
  • 进入 bin 目录,点击 elasticsearch.bat 启动 ES 服务
    • 9300 端口为 Elasticsearch 集群间组件的通信端口。
    • 9200 端口为浏览器访问的 http协议 RESTful 端口。
  • 浏览器输入访问地址:http://localhost:9200/如下表示启动成功。
  • 说明
    • name: 节点名称,取自机器的hostname
    • cluster_name: 集群名称(默认的集群名称就是elasticsearch)
    • version.number: es版本号
    • version.lucene_version:封装的lucene版本号
(6)集群检查

2、Windows安装Kibana

(1)概述
  • Kibana 是 ELK 官方的可视化 ES 管理工具
(2)下载
(3)安装
  • Windows 版的 Kibana 的安装很简单,解压即安装完毕,目录结构如下
  • 目录结构说明如下:
文件/文件夹名称 说明
bin 包含Kibana的可执行文件
config 包含Kibana的配置文件
data Kibana可能会将一些数据存储在这个目录中
node 包含Node.js的可执行文件(如果通过NPM安装)
node_modules 包含Kibana项目依赖的所有Node.js模块
plugins 存放Kibana插件的目录
src 包含了Kibana的源代码(如果源码安装)
x-pack X-Pack扩展包的相关文件
.j18nrc.json 配置国际化(i18n)的资源文件
LICENSE.txt 包含Kibana的许可证信息
NOTICE.txt 关于Kibana的版权和商标信息,以及第三方库的版权声明
package.json 定义了Kibana项目的元数据
README.txt 提供关于Kibana的基本信息和使用说明
(4)启动并检查
(6)数据操作
(7)中文汉化
  • config\kibana.yml 配置文件中加上汉化配置
yaml 复制代码
i18n.locale: "zh-CN"
  • 修改完成重启生效

3、Windows安装head插件

(1)概述
  • head插件是ES的一个可视化管理插件,用来监视ES的状态,并通过head客户端和ES服务进行交互,比如创建映射、创建索引等。
  • head的项目地址:https://github.com/mobz/elasticsearch-head
  • head插件是一个基于node.js 的前端项目。
(2)安装node.js
(3)下载并运行
bash 复制代码
git clone git://github.com/mobz/elasticsearch-head.git 
cd elasticsearch-head 
npm install 
npm run start 
(4)浏览器访问
(5)配置跨域
  • F12 打开浏览器调试工具发现报错
    • Origin null is not allowed by Access-Control-Allow-Origin.
  • 原因是:head插件作为客户端要连接ES服务(localhost:9200),此时存在跨域问题,elasticsearch默认不允许跨域访问。
  • 解决方案:设置elasticsearch允许跨域访问。在config/elasticsearch.yml 后面增加以下参数:
yaml 复制代码
#开启跨域支持
http.cors.enabled: true
#设置允许的来源
http.cors.allow-origin: "*"
  • 配置完成重启 ES,重新连接,成功连接ES

4、Windows安装IK 分词器

(1)概述
  • 分词(Tokenization)是文本处理中的一个关键步骤,特别是在自然语言处理(NLP)和搜索引擎技术中。分词是将连续的文本字符串拆分成一个个独立的、有意义的单元(通常是单词或短语)的过程。这个过程对于文本的进一步分析和理解至关重要。
  • IK分词器是专门为中文文本设计的分词工具,尤其适用于搜索引擎和自然语言处理领域。
  • IK分词器提供了两种分词算法:ik_smartik_max_word
    • ik_smart:进行粗粒度的分词,尽量少的对文档进行拆分,适合短语查询。
    • ik_max_word:进行最细粒度的拆分,会将文本拆分成尽可能多的词,适合术语查询
(2)下载
(3)安装
  • 将下载的压缩包解压放到 es 的插件文件夹中,ik 分词器文件夹重新命名 ik
  • 重新启动 ES,发现 IK 分词器被加载了
(4)使用分词器
  • ik_smart(最少切分)测试:
json 复制代码
# 请求
GET _analyze
{
  "analyzer": "ik_smart",
  "text": "道德制高点"
}

#返回
{
  "tokens" : [
    {
      "token" : "道德",
      "start_offset" : 0,
      "end_offset" : 2,
      "type" : "CN_WORD",
      "position" : 0
    },
    {
      "token" : "制高点",
      "start_offset" : 2,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 1
    }
  ]
}
  • ik_max_word(最细粒度划分)测试:
json 复制代码
# 请求
GET _analyze
{
  "analyzer": "ik_max_word",
  "text": "道德制高点"
}

# 返回
{
  "tokens" : [
    {
      "token" : "道德",
      "start_offset" : 0,
      "end_offset" : 2,
      "type" : "CN_WORD",
      "position" : 0
    },
    {
      "token" : "制高点",
      "start_offset" : 2,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 1
    },
    {
      "token" : "高点",
      "start_offset" : 3,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 2
    }
  ]
}
(5)自定义分词
  • 在 ik 插件的 config 文件夹中添加自己的分词文件 liyou.dic
  • 在分词文件中添加自己的分词
(6)配置自定义分词
  • 在 ik 分词器配置文件中配置自己的分词文件
  • 配置完成重启 ES
(7)测试自定义分词
  • 自己造出来的词"德制"已经出现在分词中
json 复制代码
# 请求
GET _analyze
{
  "analyzer": "ik_max_word",
  "text": "道德制高点"
}

# 返回
{
  "tokens" : [
    {
      "token" : "道德",
      "start_offset" : 0,
      "end_offset" : 2,
      "type" : "CN_WORD",
      "position" : 0
    },
    {
      "token" : "德制",
      "start_offset" : 1,
      "end_offset" : 3,
      "type" : "CN_WORD",
      "position" : 1
    },
    {
      "token" : "制高点",
      "start_offset" : 2,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 2
    },
    {
      "token" : "高点",
      "start_offset" : 3,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 3
    }
  ]
}
相关推荐
阿昌喜欢吃黄桃16 天前
RocketMq事务消息原理
java·中间件·消息队列·rocketmq·mq
半夜修仙17 天前
延迟队列的介绍及常见问题
java·数据库·中间件·rabbitmq
手握风云-17 天前
一条消息的旅程:RabbitMQ 学习与实践(一)
中间件·rabbitmq
RH23121118 天前
2026.6.8Linux
java·数据库·中间件
理人综艺好会19 天前
双Token机制在实际项目中的应用与实践
中间件·token
番茄去哪了19 天前
神领物流面试题(一)
java·大数据·中间件
念何架构之路19 天前
消息中间件
中间件
都说名字长不会被发现20 天前
Spring Boot Starter 中间件账号密码加密方案设计与实现
java·spring boot·后端·中间件
瀚高PG实验室20 天前
java中间件无法连接数据库
java·数据库·中间件·瀚高数据库
之歆20 天前
Day11_Express 深入解析:从中间件到项目实战
中间件·express