elasticsearch 5.5.0 java操作(新增索引、分页搜索)

网上资源比较乱、比较杂,稍微总结一下,帮助大家避免像我一样走弯路…………

————————————————————————————————————

首先引入maven依赖

<!--elasticsearch-->
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>5.5.0</version>
        </dependency>


公共client:获取ES的client,任何操作都需要此client(类似httpclient吧,发送请求操作):

// 设置集群名称cluster.name:
        Settings settings = Settings.builder().put("cluster.name", "betawoo_es").build();

//特别注意,java操作端口为:9300
        Client client = new PreBuiltTransportClient(settings)
                .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("139.116.196.10"), 9300));
提醒:使用完毕记得关闭,调用: client.close();


1、新建索引

//json字符串,也可以直接传Map
        String json = "{\"title\":\"我从windows创建\",\"label\":[\"美式沙发\"],\"create_date\":\"2017-11-1 15:41:01\"}";
        IndexResponse response = client.prepareIndex("index_名称", "type_名称").setId("0").setSource(json).execute().actionGet();
        // Index name
        String _index = response.getIndex();
        // Type name
        String _type = response.getType();
        // Document ID (generated or not)
        String _id = response.getId();
        // Version
        long _version = response.getVersion();
        System.out.println("-------:"+_id+"创建成功!");

2、删除索引(根据id删除)

DeleteResponse deleteresponse = client.prepareDelete("index_名称", "type_名称","9db3f12721624f6a888e0c62181ffe8a")
                .execute()
                .actionGet();
        System.out.println(deleteresponse.getVersion());

3、分页搜索

QueryBuilder包路径:import org.elasticsearch.index.query.QueryBuilder;

//搜索匹配内容,等同:curl -X GET http://localhost:9200/test/kind/_search?pretty -d '{"query" : {"match" : {"label" : "映享优选"}}}'
        QueryBuilder matchQuery = QueryBuilders.matchQuery("label", "映享优选");
        SearchResponse response = client.prepareSearch("portal").setTypes("product")//设置索引和类型
                .setQuery(matchQuery).setFrom(0).setSize(60)//设置分页参数(获取1-60条,0开始)类似mysql limit分页
                .execute().actionGet();
        //获取查询结果集
        SearchHits searchHits = response.getHits();
        System.out.println("共搜到:"+searchHits.getTotalHits()+"条结果!");
        //遍历结果
        for(SearchHit hit:searchHits){
            System.out.println("String方式打印文档搜索内容:");
            System.out.println(hit.getSourceAsString());
//            System.out.println(hit.getId());
        }







评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多来哈米

还可以打赏???来试一毛

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值