Elasticsearch简单使用系列--使用Java API进行CRUD操作

来源:互联网 发布:win10如何更新软件 编辑:程序博客网 时间:2024/05/26 22:07

1.简单介绍Elasticsearch和RDBMS对应的关系,便于记忆理解

Elasticsearch RDBMS index database type/mapping table document/object row/record field column

2.封装一个获取client的工具类

/** * @author lcj * @version 1.0 * @description 获取client * @Create 2017-06-19 */public  class TransportClientUtil {    public static TransportClient getTransportClient(){        Settings settings = Settings.builder()                .put("cluster.name","es-cluster") //设置集群的名字,默认是elasticsearch                .put("client.transport.sniff",true) //启用监听器,每5秒刷新一次nodes                .build();        TransportClient client = null;        try {            client = new PreBuiltTransportClient(settings)            //设置node            //.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(System.getenv("COMPUTERNAME")),9300));            .addTransportAddress(new InetSocketTransportAddress(InetAddress.getLocalHost(),9300));        } catch (UnknownHostException e) {            e.printStackTrace();        }        return client;    }}

3.使用java api进行CRUD

/** * @author lcj * @version 1.0 * @description 使用java api操作es node,进行简单的crud * @Create 2017-06-22 */public class EsJavaApi {    private static final Logger LOGGER = LoggerFactory.getLogger(EsJavaApi.class);    private static TransportClient client = TransportClientUtil.getTransportClient();    public static void main(String[] args) {        //创建索引文档        //save();        //搜索文档        //get();        //更新文档        //update();        //删除文档        delete();        //关闭链接        client.close();    }    /**     * pojo bean ,创建index 文档     */    private static void save(){        Book book = new Book();        book.setName("jvm 虚拟机5");        book.setAuthor("lcj4");        book.setPublishTime(new Date().toString());        book.setPrice(512.10);        book.setId("17");        ObjectMapper mapper = new ObjectMapper();        try {            byte[] bytes = mapper.writeValueAsBytes(book);            IndexResponse response = client.prepareIndex("book","book",book.getId())                    .setSource(bytes)                    .get();            System.out.println(response.getResult()); //CREATED        } catch (JsonProcessingException e) {            e.printStackTrace();        }    }    /**     * 根据id,搜索文档     */    private static void get(){        GetResponse response = client.prepareGet("book","book","17")                .setOperationThreaded(false) //默认为true,在不同的线程执行                .get();        //{"id":"17","name":"jvm 虚拟机5","author":"lcj4","price":512.1,"publishTime":"Thu Jun 22 13:36:49 CST 2017"}        System.out.println(response.getSourceAsString());    }    /**     * 更新文档     */    private static void update(){        UpdateRequest updateRequest = new UpdateRequest();        //指定索引        updateRequest.index("book");        //指定类型        updateRequest.type("book");        //指定id        updateRequest.id("17");        Book book = new Book();        book.setName("jvm 虚拟机55");        book.setAuthor("lcj4");        book.setPublishTime(DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss"));        book.setPrice(512.18);        book.setId("17");        ObjectMapper mapper = new ObjectMapper();        //有很多重载方法        //{"_index":"book","_type":"book","_id":"17","_version":2,"found":true,"_source":{"id":"17","name":"jvm 虚拟机55","author":"lcj4","price":512.18,"publishTime":"2017-06-22 13:45:22"}}        try {            updateRequest.doc(mapper.writeValueAsBytes(book));            client.update(updateRequest).get();        } catch (Exception e) {            e.printStackTrace();        }    }    /*根据id删除文档*/    private static void delete(){        DeleteResponse response = client.prepareDelete("book","book","17")                .get();        //DeleteResponse[index=book,type=book,id=17,version=3,result=deleted,shards=ShardInfo{total=2, successful=1, failures=[]}]        System.out.println(response);    }}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 学it找不到工作怎么办 血液里有微生物怎么办 机械硬盘不显示怎么办 六安建筑机械租赁公司怎么办 别墅楼梯太陡怎么办 不锈钢楼梯太陡怎么办 真皮白色鞋脏了怎么办 白色牛皮包脏了怎么办 白色羊皮鞋脏了怎么办 白色真皮染色了怎么办 白色漆皮鞋脏了怎么办 对鉴定结果不服怎么办 洗衣机入水口堵塞怎么办 华科办临时饭卡怎么办 血浆乳酸测定高怎么办 olay大红瓶过敏怎么办 饥一顿饱一顿怎么办 朝鲜人向去韩国怎么办? 我是超级大方脸怎么办 被精神病砍断四根筋怎么办 40小时不睡觉怎么办 边防转业军人安置不好怎么办 转业军人孩子读书怎么办玉环 军官证丢了怎么办 飞行学员停飞了怎么办 丹东港债券违约怎么办 对村党支部贿选怎么办 马自达2油耗高怎么办 马自达1.5油耗高怎么办 马自达5停产配件怎么办 期货账户休眠了怎么办 低于二本线怎么办 听力测试不过关怎么办 安装的天正过期怎么办 天正t20v4过期了怎么办 鸡肉菊花一起吃怎么办 孕妇误食马兰头怎么办 孕29周喉咙痛怎么办 哺乳期吃了当归怎么办 哺乳期喝了茶水怎么办 大人感染eb病毒怎么办