elasticsearch连接java的开发流程

今天终于爬坑,把elasticsearch连接java测试跑通了,搜索那么多,走那么多弯路,哎!不说了, 自己仔细把走过的路记下来, 让自己和大家都少走弯路。

1、用maven项目搭建工程: 要注意的是, 你的elasticsearch是什么版本的, maven下载的那个jar也得对应该版本, 否则会报错:例如,我的是elasticsearch5.2.0,那么我的下载的版本也是5.2.0

 
      org.elasticsearch.client
      transport
      5.2.0
 

必须要一致哦,再次提醒。

pom文件的完整依赖


   
      org.apache.logging.log4j
      log4j-core
      2.8.2
    
    
    
      org.slf4j
      slf4j-log4j12
      1.7.21
      test
    
    
      org.slf4j
      slf4j-api
      1.7.25
      compile
    
    
    
      com.google.code.gson
      gson
      2.8.0
    
    
      junit
      junit
      4.12
      compile
    
    
    
      org.elasticsearch.client
      transport
      5.2.0
    

  

 

这些添加完成后,等待下载依赖完成, 就可以进行链接,创建索引了

其中要注意的是:logger报错也没事, host 在设置的时候,如果是连的本地的,就写成“127.0.0.1”,

如果需要远程访问,可以修改 Elastic 安装目录的config/elasticsearch.yml文件,去掉network.host的注释,将它的值改成0.0.0.0,然后重新启动 Elastic。

例如:

network.host: 0.0.0.0      

下面把java连接elasticsearch的代码贴出来,很简单:

package com.test;

import java.io.IOException;
import java.net.InetAddress;
import java.util.Date;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.xcontent.XContentFactory;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class EsTest {

    /**
     *  // 服务器地址
     */
    private static String host="127.0.0.1";
    /**
     *  // 端口
     */
    private static int port=9300;
    /**
     * 创建logger
     */
    private  Logger logger = LoggerFactory.getLogger(EsTest.class);


    public static void main(String[] args) throws IOException{
        /**
         * 创建链接
         */
        TransportClient    client2 = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddresses(
                new InetSocketTransportAddress(InetAddress.getByName(host),port));


        System.out.println("连接信息:" + client2.toString());
        IndexResponse response = client2.prepareIndex("msg", "tweet", "2").setSource(XContentFactory.jsonBuilder()
                .startObject().field("userName", "张三")
                .field("sendDate", new Date())
                .field("msg", "你好李四")
                .endObject()).get();


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

        /**
         * 关闭连接
         */
        client2.close();
    }
}

在这里, 我把引入的包名都贴上去, 这样在写的时候,可以直接复制上面的引入, 防止引入错误的jar。

执行后的结果:

elasticsearch连接java的开发流程_第1张图片

这个实例就被创建好了, 可以看到的是实例状态是:created.

最后把elasticsearch的一个教程连接贴出来,他写的还是很详细的。

入门教程:https://www.cnblogs.com/ld-swust/p/9034941.html

索引创建、数据增删改查操作教程:https://www.cnblogs.com/sunny1009/articles/7887568.html

 

整合的springboot+mybatis+mysql+shiro+elasticsearch 代码已经打包了,下载地址https://download.csdn.net/download/qq_35357001/10780231

有需要的可以去下载

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(java笔记)