elasticsearch入门教程一(基于JAVA client 针对5.1版本)

时间:2025-03-31 08:58:39

首先官网下载5.1版本/downloads/elasticsearch 我下载的是ZIP版本。

解压直接本地运行bin/elasticsearch,32位JAVA或者内存不够大的同学请修改config下的文件 我的修改如下

-Xms400m
-Xmx400m

跑起来后就是环境的配置啦。

一定要有这么几项

  <dependency>
      <groupId></groupId>
      <artifactId>elasticsearch</artifactId>
      <version>5.1.1</version>
    </dependency>
    <dependency>
      <groupId></groupId>
      <artifactId>transport</artifactId>
      <version>5.1.1</version>
    </dependency>
    <dependency>
      <groupId>.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>2.7</version>
    </dependency>
    <dependency>
      <groupId>.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>2.7</version>
    </dependency>

接着开始我们最简单的第一个hello world ,对ES进行增的操作

 try {
            byte[] addr = new byte[]{127,0,0,1};
            TransportClient client = new PreBuiltTransportClient()
                    .addTransportAddress(new InetSocketTransportAddress((addr), 9300));
            IndexResponse response = ("twitter", "tweet", "1")
                    .setSource(jsonBuilder()
                            .startObject()
                            .field("user", "kimchy")
                            .field("postDate", new Date())
                            .field("message", "trying out Elasticsearch")
                            .endObject()
                    )
                    .get();
            ();
        }
        catch(Exception e)
        {
            //
        }

代码赛到一个可以跑的地方就可以了。http://localhost:9200/twitter/tweet/1   get 一下。成功拿到数据。


添加JSON的地方我们可能希望用另外的类。修改如下

    JSONObject jsonObject= new JSONObject();
            ("user","mytest5");
     //      ("postDate",new Date());日期直接使用有格式的问题。
            ("message","mymessage5");
            JSONArray jsonArray = new JSONArray();
            ("test41");
            ("test42");
            ("testarray", jsonArray);
            String message = ();
            IndexResponse response = ("twitter", "tweet", "5")
                    .setSource(message)
                    .get();

对ES进行查的操作

            GetResponse response = ("twitter", "tweet", "6").get();
            String strTmp2 = ();


删除的操作

DeleteResponse response = ("twitter", "tweet", "1").get();

同步条件删除

            BulkIndexByScrollResponse response =
                    (client)
                            .filter(("user", "你信不信呢?"))
                            .source("twitter")
                            .get();
            long deleted = ();

异步条件删除

(client)
    .filter(("gender", "male"))                  
    .source("persons")                                                   
    .execute(new ActionListener<BulkIndexByScrollResponse>() {           
        @Override
        public void onResponse(BulkIndexByScrollResponse response) {
            long deleted = ();                        
        }
        @Override
        public void onFailure(Exception e) {
            // Handle the exception
        }
    });

更新,查询的各种函数就看文档吧。

/guide/en/elasticsearch/client/java-api/current/

第一个程序就此搞定!

等空下来。我将写一个完整的增删改查,包括JAVA client用法和restful用法,JPA用法则要延后了。