现在网上对于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是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 ElasticSearch应用场景维基百科,类似...
Kibana 和 CerebroLogstash 安装与导入数据第 3 章:Elasticsearch 入门基本概念(1):索引,文档和 REST API基本概念(2):节点,集群,分片及副本文档的基本 CRUD 与批量操作倒排索引入门通过分析器进行分词...
视频资源太大,这里提供百度云链接: 资源包括项目源码和所需的数据: 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 -...
讲座:Elasticsearch 完整指南 重要更新:由于版本 7 类型将被删除,默认类型应替换为_doc类型 第 1 部分 - 入门 第 2 课 - Elasticsearch 介绍 Elasticsearch 是一个分析和全文搜索引擎。 它在应用程序中启用搜索...
Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 Elasticsearch 不仅仅是 Lucene,
本次课程以SpringData为中心,重点讲解了其JPA组件,扩展讲解了redis,mongDB,ES组件,并且对部分组件做了必要的源码分析。而且在课程的最后部分加入了一个综合案例,可以将前面章节所学知识点应用到一个项目中,帮助...
里面包含了JDBC,Data JPA,Data Redis,Data Mongodb,Data Rabbit,Data ElasticSearch等等。合集中的每一项都是针对不同数据存储做的简化封装,使我们在操作不同数据库时,以最简洁的代码完成需求功能。 Spring...
所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通...
此为《Android应用开发实战》一书的配套源码。 出版时间: 2012年1月1日 全面介绍了Android的系统架构、开发环境的搭建、Android应用程序的常用组件,以及一个简单的微博客户端的实现方法,为接下来动手实现本书...
Solr & Elasticsearch | 分布式全文搜索引擎 | [http://lucene.apache.org/solr/](http://lucene.apache.org/solr/) [https://www.elastic.co/](https://www.elastic.co/) Quartz | 作业调度框架 | ...
包含爬虫,Scala代码,Spark,Hadoop,ElasticSearch,logstash,Flume,echarts,log4j emotional_analysis_spider 爬虫模块 emotional_analysis_web 数据处理模块(Scala代码) emotional_analysis_recommend 推荐模块...
【超全golang面试题合集+golang学习指南+golang知识图谱+入门成长路线】 一份涵盖大部分golang程序员所需要掌握的核心知识。常用第三方库(mysql,mq,es,redis等)+机器学习库+算法库+游戏库+开源框架+自然语言处理nlp...
webpack原理及源码分析 精彩待续... Vue原理及源码分析 精彩待续... 小程序入门到熟练 精彩待续... 前端开发路线图 服务器 笔者觉得每个开发者都应该拥有自己的网站和服务器,这可是很酷的事情,学习Linux,跑跑脚本...
前端进阶JavaScript基础:JavaScript数据类型JavaScript代码运行机制作用域和作用域链let/const/var的区别JavaScript高阶编程技巧原型和原型链的底层运行机制this指向数据...axios源码分析设计模式:手写发布订阅模式
基于 Spring Boot、MyBatis-Plus、MySQL、Redis、ElasticSearch、MongoDB、Docker、RabbitMQ 等主流技术栈,附详细教程,包括Java、Spring、MySQL、Redis、微服务&分….所有源码均经过严格测试,可以直接运行,...
Zeppelin ,一个基于Web的笔记本,可进行交互式数据分析。 您可以使用SQL,Scala等制作漂亮的数据驱动,交互式和协作式文档。 核心功能: 基于Web的笔记本样式编辑器。 内置Apache Spark支持 要了解有关齐柏林...