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

本文介绍如何快速安装 Elasticsearch 5.1 版本,并通过 Java API 完成基本的 CRUD 操作。从环境搭建、依赖引入到示例代码逐一解析。

首先官网下载5.1版本https://www.elastic.co/downloads/elasticsearch 我下载的是ZIP版本。

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

-Xms400m
-Xmx400m

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

pom.xml一定要有这么几项

  <dependency>
      <groupId>org.elasticsearch</groupId>
      <artifactId>elasticsearch</artifactId>
      <version>5.1.1</version>
    </dependency>
    <dependency>
      <groupId>org.elasticsearch.client</groupId>
      <artifactId>transport</artifactId>
      <version>5.1.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>2.7</version>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.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(Settings.EMPTY)
                    .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByAddress(addr), 9300));
            IndexResponse response = client.prepareIndex("twitter", "tweet", "1")
                    .setSource(jsonBuilder()
                            .startObject()
                            .field("user", "kimchy")
                            .field("postDate", new Date())
                            .field("message", "trying out Elasticsearch")
                            .endObject()
                    )
                    .get();
            client.close();
        }
        catch(Exception e)
        {
            //
        }

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


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

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

对ES进行查的操作

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


删除的操作

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

同步条件删除

            BulkIndexByScrollResponse response =
                    DeleteByQueryAction.INSTANCE.newRequestBuilder(client)
                            .filter(QueryBuilders.matchQuery("user", "你信不信呢?"))
                            .source("twitter")
                            .get();
            long deleted = response.getDeleted();

异步条件删除

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

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

https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-update.html

第一个程序就此搞定!

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值