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

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

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

首先引入maven依赖


        
            org.elasticsearch.client
            transport
            5.5.0
        


公共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());
        }







你可能感兴趣的:(elasticsearch,java)