深入elasticsearch源码之环境搭建(代码片段)

洽洽老大 洽洽老大     2022-12-04     420

关键词:

为了研究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 里面,可以查看相关的类的源码。

深入elasticsearch源码之索引过程(代码片段)

调用es2..2.1的javaApi在ES集群中索引一个文档客户端大致流程:使用XContentBuilder构建索引的json串,也可直接用json字符串使用TransportClient连接ES集群发送索引到集群并获取IndexResponse测试代码如下:packageindex;importjava.io.IOExc... 查看详情

springioc源码深入剖析预备知识(代码片段)

目录1Spring源码环境编译与构建1.1自动化构建gradle介绍1.2源码环境搭建与编译2构建gradle源码测试项目2.1开始搭建测试项目3Spring基本概念回顾3.1Spring中的基本概念3.2SpringAOP和AspectJ4.3设计模式之责任链4ioC用到的那些设计模式4.1设计... 查看详情

elasticsearch源码本地环境搭建

...:1、资源准备ElasicSearch版本:6.0.0:https://github.com/elastic/elasticsearch安装jdk(jdk1.8以上,本人用的是1.8.0_131)安装gradle(3.3以上,本人用的是4.3.1)需要安装环境变量网上有好多,下载地址h 查看详情

elasticsearch实战三部曲之三:搜索操作(代码片段)

欢迎访问我的GitHub本文是《elasticsearch实战三部曲》的终篇,作为elasticsearch的核心功能,搜索的重要性不言而喻,今天的实战都会围绕搜索展开;环境信息本次实战用到的elasticsearch版本是6.5.4,安装在Ubuntu16.04.5LTS,客户端工具是... 查看详情

elasticsearch使用指南之初始环境搭建

Elasticsearch使用指南之初始环境搭建Elastic系列要求所有软件版本号必须一致本文使用Windows下的Elastic8.4.3系列下载elasticsearchv8.4.3//es引擎主体kibanav8.4.3//es官方可视化管理工具analysis-ikv8.4.3//ik分词器,涉及中文搜索必须装个中文... 查看详情

elk学习笔记之elasticsearch环境搭建

ELK概述:ElasticSearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等Logstash是一个完全开源的工具,它可以对你的日志进行收集、... 查看详情

java操作elasticsearch之搭建测试项目环境

在创建项目之前请确认maven是否安装好,在此我是以环境都搭建好的情况下进行示范,现在以eclipse开发工具为例,具体操作如下:1、创建maven项目File-new-other 2、在pom文件中导入对应的jar包坐标在此我没有添加log4j等坐标,需... 查看详情

elasticsearch入门到放弃之elasticsearch-head(代码片段)

elasticsearch-head可理解为跟DBeaver一样是一个数据可视化工具,但是这个工具并没有理想中那么好用坑也是很多,我已经在我的github上fork了一份修改后的版本:https://github.com/zhaoyunxing92/elasticsearch-head系列文章elasticsearch入门到放弃之... 查看详情

elasticsearch集群环境搭建(代码片段)

一、环境说明搭建一个三个节点的集群环境,模拟搭建为了方便在一台机器上搭建,需要3G以上的内存节点#192.168.200.136安装elasticsearch集群elasticsearch0:192.168.200.136:9200elasticsearch1:192.168.200.136:9201elasticsearch2: 查看详情

elasticsearch集群环境搭建(代码片段)

一、环境说明搭建一个三个节点的集群环境,模拟搭建为了方便在一台机器上搭建,需要3G以上的内存节点#192.168.200.136安装elasticsearch集群elasticsearch0:192.168.200.136:9200elasticsearch1:192.168.200.136:9201elasticsearch2: 查看详情

elasticsearch实战-elasticsearch集群环境搭建(代码片段)

    本篇的ES集群是基于 ElasticSearch实战(一)-ElasticSearch单机环境搭建 的配置来做的,如果你还没有完成第一篇ES单机环境的部署,不建议阅读本文。一、准备工作        三台服务器配置信息,如下所... 查看详情

elasticsearch6.1.2源码下载和编译构建(代码片段)

欢迎访问我的GitHub本篇概览为了深入学习elasticsearch,研究其源码是种有效途径,本文简述了从下载到编译构建再运行起来的全部过程;环境信息操作系统:Ubuntu18.04.2LTSJDK:1.8.0_191Gradle:4.6elasticsearch:6.1.2请确保JDK和Gradle已安装... 查看详情

elasticsearch探索之路实战:环境搭建restcrudsearch(代码片段)

文章目录环境搭建搭建Elasticsearch环境搭建Kibana环境基本操作RESTfulCRUD创建索引插入文档查询文档更新文档删除文档和索引Search查询方式URL+参数URL+QueryDSLmatch匹配match匹配查询match_all全部匹配match_phase短语匹配multi_match多字段... 查看详情

elasticsearch探索之路实战:环境搭建restcrudsearch(代码片段)

文章目录环境搭建搭建Elasticsearch环境搭建Kibana环境基本操作RESTfulCRUD创建索引插入文档查询文档更新文档删除文档和索引Search查询方式URL+参数URL+QueryDSLmatch匹配match匹配查询match_all全部匹配match_phase短语匹配multi_match多字段... 查看详情

elasticsearch探索之路实战:环境搭建restcrudsearch(代码片段)

文章目录环境搭建搭建Elasticsearch环境搭建Kibana环境基本操作RESTfulCRUD创建索引插入文档查询文档更新文档删除文档和索引Search查询方式URL+参数URL+QueryDSLmatch匹配match匹配查询match_all全部匹配match_phase短语匹配multi_match多字段... 查看详情

mybatis源码分析之01环境搭建

直接使用maven搭建一个mybatis的运行环境1. pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLoc 查看详情

01go之环境搭建(代码片段)

1.1Linux搭建Go环境  1.ssh远程登录Linux服务器,可选用iTerm、xshell1ssh[email protected]  2.建议配置好阿里云yum源、epel源1安装git23yuminstallgit  3.下载go源码包1//下载地址go官网https://golang.org/dl/2cd/opt/3wgethttps://dl.google.com/go/ 查看详情

玩转elasticsearch之服务集群搭建实例(代码片段)

...集群部署部署镜像安装cerebro测试前言没什么就是来玩玩ElasticSearch来look。顺便记录一下,就非常nice,顺便放松一下,水一篇博客~。环境阿里云centos82核8G连接工具FinalShell这个是非常干净的服务器,咱们刚刚创建的... 查看详情