现在网上对于ElasticSearch(ES)方面的资料很少,而且对于ES源码方面的资料也很少,我自己看了一下ES源码,也不知道我的理解是不是正确的,就想把我自己的一些理解贴出来,一起探讨一下,希望如果发现错误跟及时给我留言,我们一起研究,共同进步。
ES我就不介绍了http://baike.baidu.com/view/8005387.htm这里有详细.
首先我们要知道几个网址:
http://www.elasticsearch.org/ 官方网址
http://s.medcl.net/ ES中文资料
https://github.com/elasticsearch/elasticsearch 源码下载地址
我的开发环境是 Eclipse+Maven ,首先我们先把源码下载下来,再执行"mvn package -DskipTests
",成功了?反正我是失败了,编译出错
[ERROR] ...\elasticsearch-src\elasticsearch\src\main\java
\org\elasticsearch\search\internal\InternalSearchHits.java:[23,0] 找不到符号
[ERROR] 符号: 静态 readSearchHit
查看了一下源码23行是静态导入,这是编译环境问题先用Eclipse编译,再继续,搞定。
通过上面的步骤源码就可以被跑起来了,打开 bin\elasticsearch.bat
"%JAVA_HOME%\bin\java" %JAVA_OPTS% %ES_JAVA_OPTS% %ES_PARAMS% %* -cp "%ES_CLASSPATH%" "org.elasticsearch.bootstrap.ElasticSearch"
可以明显看出启动类为:
org.elasticsearch.bootstrap.ElasticSearch
而ElasticSearch.java类很简单
public class ElasticSearch extends Bootstrap {
public static void close(String[] args) {
Bootstrap.close(args);
}
public static void main(String[] args) {
Bootstrap.main(args);
}
}
直接调用的是Bootstrap.main方法,也就是说我们直接运行Bootstrap类,跟运行ElasticSearch是一样的。我以Bootstrap类启动为例,运行后大家会发现控制台没有输出,我开始以为是log4j配置问题, 找到org.elasticsearch.common.logging.log4j.LogConfigurator 发现配置应该不可能有问题,最后在Bootstrap类找到了原因
boolean foreground = System.getProperty("es.foreground", System.getProperty("es-foreground")) != null;
// handle the wrapper system property, if its a service, don't run as a service
if (System.getProperty("wrapper.service", "XXX").equalsIgnoreCase("true")) {
foreground = false;
}
...
if (!foreground) {
Loggers.disableConsoleLogging();
System.out.close();
}
foreground为false 把控制台关闭了,把foreground设置为true即可,源码环境就搭建完了。
分享到:
相关推荐
**Elasticsearch 开发环境搭建与 BBoss 入门教程** Elasticsearch 是一个高度可扩展的开源全文搜索引擎,设计用于快速提供近实时的搜索和分析能力。BBoss(Business Boss)是基于Elasticsearch的一个强大且灵活的...
如果你是Intellij IDEA和Elasticsearch的初学者,希望这些步骤能够帮助你顺利入门并进行源码调试。同时,请注意,官方文档和社区是解决遇到问题的宝贵资源,它们能为你提供许多有用的建议和解决方案。
Elasticsearch常用于大数据环境下的复杂搜索需求和日志分析等领域。 在讨论Elasticsearch API之前,需要了解Elasticsearch的核心组件。Elasticsearch的集群由一个或多个节点组成,每个节点被称为一个Elasticsearch...
**Elasticsearch RESTful搜索引擎与Java Jest库的入门教程** Elasticsearch是一个强大的分布式、开源的全文搜索引擎,它提供了一个可扩展的、近实时的搜索和分析引擎。RESTful API是Elasticsearch的核心特性,允许...
Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 ElasticSearch应用场景维基百科,类似...
Elasticsearch(简称 ES)是一种基于 Lucene 的开源分布式搜索引擎,它提供了全文检索、分析、实时等高级功能。作为NoSQL数据库的一种,Elasticsearch以其高效、灵活和可扩展性在大数据时代备受青睐,广泛应用于日志...
Elasticsearch 是一个开源的分布式搜索引擎,以其实时性、高可扩展性和强大的分析能力而受到广泛欢迎。版本2.3.5是Elasticsearch的一个稳定版本,提供了许多关键功能和性能优化。在本文中,我们将详细介绍如何安装和...
【Elasticsearch 入门与深入学习】 Elasticsearch 是一款基于 Lucene 的开源全文搜索引擎,它提供了一个分布式、 RESTful 风格的搜索和分析引擎,适用于各种规模的企业。由于其高度可扩展性和易用性,Elasticsearch...
Elasticsearch是一个分布式、开源的全文搜索引擎,设计用于云计算环境中,提供实时数据分析和...通过源码分析和实战项目,学习者能够深入理解Elasticsearch的工作原理,并具备独立开发和维护Elasticsearch系统的能力。
视频资源太大,这里提供百度云链接: 资源包括项目源码和所需的数据: 01-1 _课程导学~1.mp4 01-2 说明和建议~1.mp4 02-1 -术语介绍 .mp4 02-2 Document介绍.mp4 02-3 index介绍 .mp4 02-4 -restapi介绍 .mp4 02-5 -...
- **了解ES的三个配置文件**:`elasticsearch.yml`, `log4j2.properties`, 和 `jvm.options` 文件的作用及配置要点。 #### 四、ES快速入门 这部分旨在帮助初学者快速上手ElasticSearch,通过一系列基础操作熟悉...
Kibana 和 CerebroLogstash 安装与导入数据第 3 章:Elasticsearch 入门基本概念(1):索引,文档和 REST API基本概念(2):节点,集群,分片及副本文档的基本 CRUD 与批量操作倒排索引入门通过分析器进行分词...
讲座:Elasticsearch 完整指南 重要更新:由于版本 7 类型将被删除,默认类型应替换为_doc类型 第 1 部分 - 入门 第 2 课 - Elasticsearch 介绍 Elasticsearch 是一个分析和全文搜索引擎。 它在应用程序中启用搜索...
通过阅读和分析"springdata_es_demo.zip"的源码,你将能够掌握SpringData Elasticsearch的基本使用方法,为后续的开发工作打下坚实的基础。在实践中不断探索和优化,你会发现SpringData Elasticsearch为数据操作带来...
Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 Elasticsearch 不仅仅是 Lucene,
源码分析可以帮助我们更好地理解和优化网络请求,提高应用的网络性能。 再者,Android的多媒体支持也值得研究。`media`目录包含音频、视频处理的代码,对于开发音乐、视频播放应用非常有帮助。 对于游戏开发者,...
源码分析: 1. **基础游戏架构**:在9781430230427(1)这个文件中,你可以看到一个基本的游戏框架设计。它通常包括游戏循环、渲染系统、事件处理和物理模拟等核心模块。学习这些代码,可以帮助开发者理解如何构建一...
本次课程以SpringData为中心,重点讲解了其JPA组件,扩展讲解了redis,mongDB,ES组件,并且对部分组件做了必要的源码分析。而且在课程的最后部分加入了一个综合案例,可以将前面章节所学知识点应用到一个项目中,帮助...
在Android开发领域,源码分析是一项至关重要的技能,它能帮助开发者深入理解系统的工作原理,优化代码性能,以及解决复杂的bug。"明日科技-android第三章源码"这一资源显然是一个针对Android开发的学习材料,可能是...