第一章 ElasticSearch简介与安装
第一章 ElasticSearch简介与安装
概述
Elasticsearch(简称 ES)是一个开源的分布式搜索与分析引擎,基于 Apache Lucene 构建。它专为处理大规模数据的实时搜索、分析和可视化而设计,是 Elastic Stack(原 ELK Stack)的核心组件,常与 Logstash(数据收集)、Kibana(可视化)协同使用。
核心特性:
- 分布式架构:数据自动分片(Shard)存储于多个节点,支持水平扩展与高可用性,故障时副本分片(Replica)自动接管服务。
- 实时搜索与分析:数据写入后立即可被搜索(近实时,NRT),适用于监控、日志分析等时效性强的场景。
- 倒排索引技术:通过记录词汇与文档的映射关系(如 "红色"→[文档1, 文档2]),实现全文检索的高效性,远超传统数据库的模糊匹配。
- 多数据类型支持:处理文本、数字、日期、地理空间等结构化/非结构化数据,支持复杂查询(如模糊匹配、聚合分析、地理位置搜索)。
- RESTful API:通过 HTTP 和 JSON 接口操作数据,兼容多种编程语言(Java/Python等)
windows安装教程
安装ElasticSearch
- 官网下载安装包,根据需要下载对应版本 这里下载9.1.2。
https://www.elastic.co/cn/downloads/elasticsearch
-
下载后解压即可完成安装
-
启动前需做一下配置。 ElasticSearch7.X之后在包里带了自带的jdk,无需再单独配置jdk,所以这里需要配置下自带jdk的环境变量。
如下图,配置 ES_HOME 及 ES_JAVA_HOME。

-
在 config/jvm.options 中增加 -Dfile.encoding=GBK 。这里是为了解决cmd窗口乱码问题。
-
运行 Elasticsearch 安装路径下 bin/elasticsearch.bat 即可运行。初次运行时,

会有该信息,记得将该信息记录下来。访问时需要使用。在浏览器访问http://localhost:9200/ 输入账号密码。出现{ "name" : "WIN-20250325GCB", "cluster_name" : "elasticsearch", "cluster_uuid" : "4DoIM5ymSvqiwth7_q0TJg", "version" : { "number" : "9.1.2", "build_flavor" : "default", "build_type" : "zip", "build_hash" : "ca1a70216fbdefbef3c65b1dff04903ea5964ef5", "build_date" : "2025-08-11T15:04:41.449624592Z", "build_snapshot" : false, "lucene_version" : "10.2.2", "minimum_wire_compatibility_version" : "8.19.0", "minimum_index_compatibility_version" : "8.0.0" }, "tagline" : "You Know, for Search" }即表示成功。
注: 若无法访问,控制台出现以下信息:
received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/127.0.0.1:9200, remoteAddress=/127.0.0.1:52077}
解决方案:
打开 config/elasticsearch.yml 找到下图中的两个设置 更改为false即可。其中xpack.security.enabled 是控制是否需要账号密码 根据情况设置即可。

xpack.security.enabled=true 是一个重要的安全相关配置参数,我来为您详细解释:
xpack.security.enabled=true 表示启用了 Elasticsearch 的 X-Pack 安全模块。X-Pack 是 Elasticsearch 的一个扩展包,提供了安全、监控、警报、报告等多种功能。
启用后的效果,当设置为 true 时:会启用 Elasticsearch 的身份验证和授权机制;访问 Elasticsearch 集群需要提供有效的凭据;提供了基于角色的访问控制(RBAC);启用传输层和 HTTP 层的安全功能
Elasticsearch 以服务方式运行
安装Elasticsearch服务:
elasticsearch-service.bat install
启动Elasticsearch服务:
elasticsearch-service.bat start
停止Elasticsearch服务:
elasticsearch-service.bat stop
卸载Elasticsearch服务:
elasticsearch-service.bat remove
安装elasticsearch-head
-
安装node.js
-
安装Grunt
npm install -g grunt-cli -
下载
从GitHub仓库下载ZIP包(https://github.com/mobz/elasticsearch-head),解压。 -
启动Head
进入解压目录执行:npm install && npm start安装过程中若出现以下问题

则可手动下载 将下载的zip包手动放至 Saveing to 的目录下重试即可。
浏览器访问:http://localhost:9100 -
配置CORS
修改elasticsearch.yml:http.cors.enabled: true http.cors.allow-origin: "*"
Kibana集成(可选)
-
下载Kibana
访问Kibana下载页(https://www.elastic.co/cn/downloads/kibana),注意要下载跟Elasticsearch 一样的版本。 -
修改配置
编辑kibana.yml:server.port: 5601 server.host: "0.0.0.0" elasticsearch.hosts: ["http://localhost:9200"] i18n.locale: "zh-CN" //设置中文 -
启动Kibana
进入bin目录运行:kibana.bat访问地址:http://localhost:5601/
安装分词器
-
安装ik分词器
下载地址:https://release.infinilabs.com/analysis-ik/stable/
下载后 解压到Elasticsearch 安装目录下 plugins下

然后重启Elasticsearch 即可。
测试使用:
使用lasticsearch -head测试分词器

#ES的默认分词设置是standard,会单宇拆分 POST _analyze {"analyzer":"standard","text":"测试分词"} #ik_smart:会做最粗粒度的拆 POST _analyze {"analyzer":"ik_smart","text":"测试分词"} #ik_max_word:会将文本做最细粒度的拆分 P05T analyze {"analyzer":"ik_max_word","text":"测试分词"} -
安装icu分词器
在Elasticsearch bin目录下打开cmd窗口elasticsearch-plugin list //查询pluginlist elasticsearch-plugin install analysis-icu //安装icu分词器 elasticsearch-plugin remove analysis-icu //写在icu分词器安装重启即可
测试使用:

POST _analyze 参数:{ "analyzer":"icu_analyzer", "text":"测试分词" }
更多推荐



所有评论(0)