elasticsearch java api(基本)

21 篇文章 0 订阅
1 篇文章 0 订阅

使用的版本为6.2.2,需要安装ik插件,否者创建分词器会报错

1、创建链接客户端

public  static TransportClient getBean(){


    Settings settings = Settings.builder().put("cluster.name", "es-java").build();
    // 创建client
    TransportClient client = null;
    try {
        client = new PreBuiltTransportClient(settings)
                .addTransportAddresses(new TransportAddress(InetAddress.getByName(HOST), PORT));
    } catch (UnknownHostException e) {
        e.printStackTrace();
    }
    return client;
}

2、创建mapping

public static void setMapping(){
    try {
        XContentBuilder xContentBuilder = XContentFactory.jsonBuilder();
        xContentBuilder.startObject()
                            .startObject("person")
                                .startObject("properties")
                                    .startObject("pid")
                                        .field("type","integer")
                                        .field("store",true)
                                    .endObject()
                                    .startObject("name")
                                        .field("type","text")
                                        .field("store",true)
                                        .field("analyzer","ik_smart")
                                    .endObject()
                                    .startObject("idCard")
                                        .field("type","text")
                                        .field("store",true)
                                        .field("analyzer","ik_smart")
                                    .endObject()
                                    .startObject("telphone")
                                        .field("type","integer")
                                        .field("store",true)
                                    .endObject()
                                    .startObject("bankCardNo")
                                    .field("type","integer")
                                    .field("store",true)
                                    .endObject()
                                .endObject()
                            .endObject()
                        .endObject();
        Settings settings = Settings.builder().put("cluster.name", "es-java").build();
        // 创建client
        TransportClient client = new PreBuiltTransportClient(settings)
                .addTransportAddresses(new TransportAddress(InetAddress.getByName(HOST), PORT));
        client.admin().indices().preparePutMapping("java-test")
                .setType("person")
                .setSource(xContentBuilder)
                .get();
        client.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

}

3、插入doncument

public static  void  putDoncument(){
    TransportClient client = getBean();
    //BulkRequestBuilder bulkRequestBuilder = client.prepareBulk();
    Person person = new Person();
    person.setPid(4);
    person.setBankCardNo(123456789);
    person.setIdCard("3715211984111111");
    person.setTelphone(1888888888);
    person.setName("安东尼和咱姆斯韦德");
    //Map map = JSON.parseObject(JSONArray.toJSONString(person), Map.class);
    client.prepareIndex("java-test", "person", String.valueOf(person.getPid()))
            .setSource(JSONArray.toJSONString(person), XContentType.JSON).get();
    //bulkRequestBuilder.add(request).get();
    client.close();
}

4、按照id批量查询:

public static  void query(){
    IdsQueryBuilder queryBuilder = QueryBuilders.idsQuery().addIds("1","2");
    TransportClient client = getBean();
    SearchResponse searchResponse = client.prepareSearch("java-test").setTypes("person").setQuery(queryBuilder).get();
    SearchHits hits = searchResponse.getHits();
    long totalHits = hits.getTotalHits();
    SearchHit[] hits1 = hits.getHits();
    for (SearchHit documentFields : hits1) {
        String sourceAsString = documentFields.getSourceAsString();
        System.out.println(sourceAsString);
    }
    System.out.println("totalhits"+totalHits);
    client.close();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值