概述

Elasticsearch(简称 ​​ES​​)是一个开源的​​分布式搜索与分析引擎​​,基于 Apache Lucene 构建。它专为处理大规模数据的实时搜索、分析和可视化而设计,是 ​​Elastic Stack​​(原 ELK Stack)的核心组件,常与 Logstash(数据收集)、Kibana(可视化)协同使用。

核心特性​​:

  • ​分布式架构​​:数据自动分片(Shard)存储于多个节点,支持水平扩展与高可用性,故障时副本分片(Replica)自动接管服务。
  • 实时搜索与分析​​:数据写入后立即可被搜索(近实时,NRT),适用于监控、日志分析等时效性强的场景。
  • 倒排索引技术​​:通过记录词汇与文档的映射关系(如 "红色"→[文档1, 文档2]),实现全文检索的高效性,远超传统数据库的模糊匹配。
  • ​​多数据类型支持​​:处理文本、数字、日期、地理空间等结构化/非结构化数据,支持复杂查询(如模糊匹配、聚合分析、地理位置搜索)。
  • RESTful API​​:通过 HTTP 和 JSON 接口操作数据,兼容多种编程语言(Java/Python等)

windows安装教程

安装ElasticSearch

  1. 官网下载安装包,根据需要下载对应版本 这里下载9.1.2。
https://www.elastic.co/cn/downloads/elasticsearch
  1. 下载后解压即可完成安装

  2. 启动前需做一下配置。 ElasticSearch7.X之后在包里带了自带的jdk,无需再单独配置jdk,所以这里需要配置下自带jdk的环境变量。
    如下图,配置 ES_HOMEES_JAVA_HOME
    在这里插入图片描述

  3. 在 config/jvm.options 中增加 -Dfile.encoding=GBK 。这里是为了解决cmd窗口乱码问题。

  4. 运行 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

  1. 安装node.js

  2. 安装Grunt

    npm install -g grunt-cli
    
  3. 下载
    从GitHub仓库下载ZIP包(https://github.com/mobz/elasticsearch-head),解压。

  4. 启动Head
    进入解压目录执行:

    npm install && npm start
    

    安装过程中若出现以下问题
    在这里插入图片描述
    则可手动下载 将下载的zip包手动放至 Saveing to 的目录下重试即可。
    浏览器访问:http://localhost:9100

  5. 配置CORS
    修改elasticsearch.yml:

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

Kibana集成(可选)

  1. 下载Kibana
    访问Kibana下载页(https://www.elastic.co/cn/downloads/kibana),注意要下载跟Elasticsearch 一样的版本。

  2. 修改配置
    编辑kibana.yml:

    server.port: 5601
    server.host: "0.0.0.0"
    elasticsearch.hosts: ["http://localhost:9200"]
    
    i18n.locale: "zh-CN" //设置中文
    
  3. 启动Kibana
    进入bin目录运行:

    kibana.bat
    

    访问地址:http://localhost:5601/

安装分词器

  1. 安装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":"测试分词"}
    
  2. 安装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":"测试分词"
    }
    
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐