ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Elasticsearch入门Demo(一)

2021-06-04 16:07:54  阅读:162  来源: 互联网

标签:入门 Demo appender public client Elasticsearch import org log4j


1.创建一个Maven工程,在pom.xml中添加如下代码:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>


  <groupId>elasticsearch-demo</groupId>
  <artifactId>elasticsearch-demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>elasticsearch-demo</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
        <!-- 日志依赖 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.21</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.8.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.0</version>
        </dependency>
        
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>5.5.2</version>
        </dependency>
        
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
    <dependency> 
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-1.2-api</artifactId>
      <version>2.8.2</version>
   </dependency>
  </dependencies>

</project>

2.   通过Java程序连接Elasticsearch

需要注意的是,上一章节我们通过浏览器http://127.0.0.1:9200访问可以正常访问,这里需要知晓,9200端口是用于Http协议访问的,如果通过客户端访问需要通过9300端口才可以访问

package com;
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;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ElasticsearchTest1
{
    private Logger logger = LoggerFactory.getLogger(ElasticsearchTest1.class);
    public final static String HOST = "127.0.0.1";
    public final static int PORT = 9300;// http请求的端口是9200,客户端是9300
    @SuppressWarnings("resource")
    @Test
    public void test1() throws UnknownHostException
    {
        // 创建客户端
        TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
                .addTransportAddresses(new InetSocketTransportAddress(InetAddress.getByName(HOST), PORT));
        logger.debug("Elasticsearch connect info:" + client.toString());
        // 关闭客户端
        client.close();
    }
}

4.log4j.properties文件创建

### set log levels ###
log4j.rootLogger = DEBUG,Console,File


###  输出到控制台  ###
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern= %d{ABSOLUTE} %5p %c{1}:%L - %m%n




### 输出到日志文件 ###
log4j.appender.File=org.apache.log4j.RollingFileAppender 
log4j.appender.File.File=${project}/WEB-INF/logs/app.log
log4j.appender.File.DatePattern=_yyyyMMdd'.log'
log4j.appender.File.MaxFileSize=10MB
log4j.appender.File.Threshold=ALL
log4j.appender.File.layout=org.apache.log4j.PatternLayout

log4j.appender.File.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n

4.   Elasticsearch索引库的创建

private Logger logger = LoggerFactory.getLogger(ElasticsearchTest2.class);
    public final static String HOST = "127.0.0.1";
    public final static int PORT = 9300; // http请求的端口是9200,客户端是9300
    private TransportClient client = null;


    @SuppressWarnings(
    {
            "resource", "unchecked"
    })
    @Before
    public void getConnect() throws UnknownHostException
    {
        client = new PreBuiltTransportClient(Settings.EMPTY)
                .addTransportAddresses(new InetSocketTransportAddress(InetAddress.getByName(HOST), PORT));
        logger.info("连接信息:" + client.toString());
    }


    @After
    public void closeConnect()
    {
        if (null != client)
        {
            logger.info("执行关闭连接操作...");
            client.close();
        }
    }


    @Test
    public void addIndex1() throws IOException
    {
        IndexResponse response = client.prepareIndex("msg", "tweet", "1").setSource(XContentFactory.jsonBuilder()
                .startObject().field("userName", "张三").field("sendDate", new Date()).field("msg", "你好李四").endObject())
                .get();


        logger.info("索引名称:" + response.getIndex() + "\n类型:" + response.getType() + "\n文档ID:" + response.getId()
                + "\n当前实例状态:");
    }

5.测试

测试Elasticsearch客户端连接

测试创建的索引库是否成功






标签:入门,Demo,appender,public,client,Elasticsearch,import,org,log4j
来源: https://blog.51cto.com/u_11710338/2860126

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有