通过Java程序连接Elasticsearch

通过Java程序连接Elasticsearch

9200端口是用于Http协议访问的,如果通过客户端访问需要通过9300端口才可以访问

初始化的两种方式:
1.

RestHighLevelClient client = new RestHighLevelClient(

        RestClient.builder(

                new HttpHost("localhost", 9200, "http"),

                new HttpHost("localhost", 9201, "http")));
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddresses(

                 new InetSocketTransportAddress(InetAddress.getByName("localhost"),9300));

一 创建索引

IndexResponse response = client.prepareIndex("msg","tweet", "1").setSource(XContentFactory.jsonBuilder().startObject().field("userName", "张三").field("sendDate", new Date()).field("msg", "你好李四").endObject()).get();

 

二 向索引库中添加json字符串

String jsonStr = "{" +

                "\"userName\":\"张三\"," +

                "\"sendDate\":\"2017-11-30\"," +

                "\"msg\":\"你好李四\"" +

            "}";
IndexResponse response = client.prepareIndex("weixin", "tweet").setSource(jsonStr,XContentType.JSON).get();

 

三 从索引库获取数据

GetResponse getResponse = client.prepareGet("msg", "tweet", "1").get();

logger.info("索引库的数据:" + getResponse.getSourceAsString());

 

四 更新索引库数据

JsonObject jsonObject = new JsonObject();

        jsonObject.addProperty("userName", "王五");

        jsonObject.addProperty("sendDate", "2008-08-08");

        jsonObject.addProperty("msg","你好,张三,好久不见");

UpdateResponse updateResponse = client.prepareUpdate("msg", "tweet", "1").setDoc(jsonObject.toString(),XContentType.JSON).get();

 

五 删除索引库数据

DeleteResponse deleteResponse = client.prepareDelete("msg", "tweet", "1").get();

六 查看索引是否存在

Response response = restClient.performRequest("HEAD", index);

    boolean exist = response.getStatusLine().getReasonPhrase().equals("OK");

return exist;

 

七 删除索引

Response response = restClient.performRequest("DELETE", indexName);

八 根据id查询数据

GetResponse getResponse = client.prepareGet("index", "type", "id").get();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值