深入elasticsearch源码之环境搭建
来源:互联网 发布:椅子 孩子写作业 知乎 编辑:程序博客网 时间:2024/05/19 13:17
为了研究elasticsearch的源码,可以从github下载源码,到本地编译,但这种方法比较麻烦。
我是采用eclipse构建maven项目,在pom文件中引用elasticsearch的jar包的方式来搭建源码阅读的环境。
搭建
因为我搭建的es集群是2.2.1版本(关于如何搭建集群,可以参考ElasticSearch 分布式安装及调优 ,所以选用的elasticsearch也是2.2.1版本,maven依赖如下:
<dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>2.2.1</version></dependency>
如果集群版本不一样,也可以到maven仓库选择其他版本。
创建客户端
为了跟集群通信,首先需要创建客户端,在这里,我使用了TransportCllient,参照官方文档,我对其进行了封装,方便后续使用,具体代码如下:
package es;import java.net.InetAddress;import java.net.UnknownHostException;import org.elasticsearch.client.transport.TransportClient;import org.elasticsearch.common.settings.Settings;import org.elasticsearch.common.transport.InetSocketTransportAddress;public class MyTransportClient { private TransportClient transportClient; private static MyTransportClient clientInstance; private MyTransportClient() { /** * 设置 */ Settings settings = Settings.settingsBuilder() .put("cluster.name","qiaqia")//我的集群名 .put("client.transport.sniff",true) .build(); try { transportClient = TransportClient.builder().settings(settings).build() .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.0.4"), 9300)); } catch (UnknownHostException e) { e.printStackTrace(); } } /* * 单例 */ public static MyTransportClient getInstance(){ if(clientInstance==null){ clientInstance = new MyTransportClient(); } return clientInstance; } public TransportClient getTransportClient() { return transportClient; }}
在集群中索引一条数据
命令行执行:
curl -XPUT 'http://192.168.0.4:9200/library/book/1?pretty' -d '{ "title":"mastering elasticsearch"}'
得到
{ "_index" : "library", "_type" : "book", "_id" : "1", "_version" : 1, "_shards" : { "total" : 2, "successful" : 2, "failed" : 0 }, "created" : true}
通过客户端获取es中的索引数据
package es;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.client.transport.TransportClient;public class MyClientTest { public static void main(String[] args) { TransportClient client = MyTransportClient.getInstance().getTransportClient(); //get document GetResponse response = client.prepareGet("library","book","1").get(); System.out.println(response.getSourceAsString()); }}
测试
执行MyClientTest,console输出以下信息:
四月 13, 2016 1:46:29 下午 org.elasticsearch.plugins.PluginsService <init>信息: [Termagaira] modules [], plugins [], sites []{"title":"mastering elasticsearch"}
表明客户端连接成功并且能正确获取es集群的数据。
在eclipse 的 maven Dependences
里面,可以查看相关的类的源码。
0 0
- 深入elasticsearch源码之环境搭建
- Elasticsearch 源码eclipse环境搭建
- 搭建elasticSearch源码调试环境
- Elasticsearch源码分析1-环境搭建
- 深入理解Tomcat系列之二:源码调试环境搭建
- 深入elasticsearch源码之索引过程
- elasticsearch环境搭建
- Elasticsearch中文搜索环境搭建
- ElasticSearch环境搭建
- 【elasticsearch】1.环境搭建
- Elasticsearch集群环境搭建
- ElasticSearch环境搭建
- Elasticsearch 环境搭建
- Elasticsearch环境搭建
- ElasticSearch环境搭建
- elasticsearch 分布式环境搭建
- elasticsearch环境搭建
- elasticsearch环境搭建
- updateViewConstraints和updateConstraints
- 【经典算法】:对于堆排序的理解及其实现
- Kubernetes
- 插入排序
- 【学习笔记】3D图形核心基础精炼版-11:stage3D实战-光照效果和范例工程3
- 深入elasticsearch源码之环境搭建
- 关于MySQL连接时出现的错误之一
- hdoj 1799 循环多少次?(打表&&排列组合&&杨辉)
- 雨·晴
- VLC调试:增加messages.c日志函数,在无vlc_object_t下打印日志
- PLSQL连接远程ORACLE遇到的中文乱码问题
- 每天学习一点点系列之基本算法学习(链表反转)
- xsql utility question- Runtimeerror: Dictionary was generated without -nosort option
- 58、public/private/protected的具体区别?