Elasticsearch常用操作解析
发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,创建Maven管理的Java项目在pom.xml中添加依赖:6.1.1 org.elasticsearch.client transport ${es.ve
千家信息网最后更新 2025年01月26日Elasticsearch常用操作解析
创建Maven管理的Java项目
在pom.xml中添加依赖:
6.1.1 org.elasticsearch.client transport ${es.version}
然后创建一个单元测试类ESApp:
private TransportClient client; @Before public void setUp() throws Exception { Settings settings = Settings.builder() .put("cluster.name", "mycluster") .put("client.transport.sniff", "true")//增加自动嗅探配置 .build(); client = new PreBuiltTransportClient(settings); client.addTransportAddress(new TransportAddress(InetAddress.getByName("10.8.24.94"), 9300)); System.out.println(client.toString()); }
运行后报错
java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonFactory com.fasterxml.jackson.core jackson-core 2.9.3 com.fasterxml.jackson.core jackson-databind 2.9.3 com.fasterxml.jackson.core jackson-annotations 2.9.3
运行后成功拿到ES的client:
创建一个Index
@Test public void createIndex() { client.admin().indices().prepareCreate(INDEX).get(); System.out.println("创建Index成功"); }
删除一个Index
@Test public void deleteIndex() { client.admin().indices().prepareDelete(INDEX).get(); System.out.println("删除Index成功"); }
放入数据的三种方式
//不推荐使用,太繁琐拼json格式 @Test public void createDoc() { String json = "{\"name\":\"若泽数据\"}"; IndexResponse response = client.prepareIndex(INDEX, TYPE, "100") .setSource(json, XContentType.JSON) .get(); } //推荐使用 @Test public void test01() throws Exception { Map json = new HashMap(); json.put("name", "ruozedata"); json.put("message", "trying out Elasticsearch"); IndexResponse response = client.prepareIndex(INDEX, TYPE, "101").setSource(json).get(); System.out.println(response.getVersion()); }//推荐使用 @Test public void test02() throws Exception { XContentBuilder builder = jsonBuilder() .startObject() .field("user", "ruoze") .field("postDate", new Date()) .field("message", "trying out Elasticsearch") .endObject(); IndexResponse response = client.prepareIndex(INDEX, TYPE, "102").setSource(builder).get(); System.out.println(response.getVersion()); }
拿到一条数据
@Test public void getDoc() { GetResponse response = client.prepareGet(INDEX, TYPE, "100").get(); System.out.println(response.getSourceAsString()); }
拿到多条数据
@Test public void getDocsByIds() { MultiGetResponse responses = client.prepareMultiGet() .add(INDEX, TYPE,"100") .add(INDEX, TYPE, "101", "102", "1000") .get(); for (MultiGetItemResponse response : responses) { GetResponse res = response.getResponse(); if (res.isExists()) { System.out.println(res); } else { System.out.println("没有这条数据"); } } }
数据
推荐
成功
运行
繁琐
单元
多条
方式
格式
项目
若泽
后成
测试
管理
配置
常用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中国报纸资源全文数据库
租用便宜服务器
压力传感器软件开发
摄像头服务器大屏显示无信号
服务器多重
技嘉服务器出货量
软件开发与软件产品的税率
美国等国家的网络安全计划
源服务器管理
网络安全知识整理大全
服务器的用处
wps可以制作数据库吗
单选软件开发的流程是
lol 正在连接服务器
远程管理服务器排名
戴尔服务器管理端密码
海南服务器系统托管云主机
底层软件开发心得
为什么数据库需要锁机制
客房管理数据库设计
网络安全教育宣传片心得
网络安全app排行榜
腾讯云服务器安装需要什么条件
安恒网络安全认证中心
工业控制网络安全.doc
软件开发中提qa是什么
软件开发的边界书籍
虹口区网络安全工控机价格
软件开发刚开始做什么的
云服务器创建购买费用