前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ElasticSearch详解——1.源码编译和本地Debug环境搭建

ElasticSearch详解——1.源码编译和本地Debug环境搭建

原创
作者头像
开发者日常叨叨
修改2024-06-15 17:29:54
7420
修改2024-06-15 17:29:54
举报
文章被收录于专栏:ElasticSearch搜索引擎详解

本文是《ElasticSearch搜索引擎详解》系列文章的第一篇:ElasticSearch详解——1.源码编译和本地Debug环境搭建

有兴趣的读者可以订阅《ElasticSearch搜索引擎详解》专栏,及时获取最新文章通知。

说明:本文章使用的ES版本是:6.7.0

1、环境准备

1.1、JDK安装

Elastisearch 6.7.0编译需要JDK版本10.0及以上。

建议直接安装JDK12。

JDK12下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html,在该地址中选择对应的JDK版本和环境安装包下载安装即可。

1.2、Gradle安装

还需要安装Gradle,Mac环境安装命令:brew install gradle;其他环境到官网下载安装包进行安装。

1.3、Elastisearch源码下载

直接到Github下载源码,切换到对应的分支版本即可。

代码语言:txt
复制
git clone https://github.com/elastic/elasticsearch.git
git tag
git checkout v6.7.0

2、使用IDEA 导入源码

2.1、将工程Import到IDEA

  1. 进入Elastisearch根目录,把源码编译为IDEA工程:./gradlew idea
  2. 使用IDEA进行Import项目,选择Elasticsearch目录进入配置页面:
  3. 选择Elasticsearch目录进入配置页面,选择Gradle导入后,点击下一步:
  4. 选择如下的选项,点击Finish,导入源码到IDEA完成。

2.2、在IDEA中Debug代码

使用IntelliJ在本地调试ES,有两种方式,一种是直接在IntelliJ上运行ES进行调试,但需要很多繁杂得配置。

配置方法:进入IDEA,Run -> Edit Configurations

其中虚拟机的配置(VM options)参数如下:

elasticsearch.policy如下:

最后,运行org.elasticsearch.bootstrap.Elasticsearch::main(java.lang.String[])方法就可以调试了。

2.3、远程调试

另一种是远程调试,先用debug模式,在本地启动ES服务:./gradlew run --debug-jvm

可以看到,debug模式监听的端口是8000。

然后在IDEA中添加一个Remote远程服务,如下图:

然后在IDE代码中设置断点,点击debug按钮:

同时也可以通过访问接口:curl http://127.0.0.1:9200 查看ES信息

curl http://127.0.0.1:9200/_cat/health?v 查看ES健康状况

下一篇文章将详细说一下ES的启动过程。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、环境准备
    • 1.1、JDK安装
      • 1.2、Gradle安装
        • 1.3、Elastisearch源码下载
        • 2、使用IDEA 导入源码
          • 2.1、将工程Import到IDEA
            • 2.2、在IDEA中Debug代码
              • 2.3、远程调试
              相关产品与服务
              Elasticsearch Service
              腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档