1.创建索引并插入数据
Map<String, Object> json = new HashMap<String, Object>();
json.put("user", "kimchy5");
json.put("postDate", new Date());
json.put("message", "trying out Elasticsearch");
//参数设置
//Settings settings = Settings.settingsBuilder().put("cluster.name", "elasticsearch").build();
//TransportClient client = TransportClient.builder().settings(settings).build();
Client client = TransportClient.builder().build()
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
// 第一个参数:索引名;第二个参数:索引类型;第三个参数:索引ID(相同的id时修改数据,默认为随机字符串)
IndexResponse indexResponse = client.prepareIndex("twitter", "json", "1").setSource(json).get();
System.out.println(indexResponse);
// 不指定id会随机生成一个
//client.prepareIndex("twitter", "tweet").setSource(json);
client.close(); 2.索引数据批量插入(插入效率高)
// 批量插入数据,删除和修改也可以,不举例了
BulkRequestBuilder bulkRequest = client.prepareBulk();
IndexRequest request = client.prepareIndex("twitter", "tweet", "1").setSource(json).request();
IndexRequest request2 = client.prepareIndex("twitter", "tweet", "2").setSource(json2).request();
bulkRequest.add(request);
bulkRequest.add(request2);
bulkRequest.execute().actionGet(); 3.判断索引是否存在
IndicesExistsRequest inExistsRequest = new IndicesExistsRequest("twitter");
IndicesExistsResponse inExistsResponse = client.admin().indices().exists(inExistsRequest).actionGet();
System.out.println("索引twitter是否存在:"+inExistsResponse.isExists()); 4.删除索引
//删除索引twitter
client.admin().indices().prepareDelete("twitter").execute().actionGet();
//删除索引中的某个文档(一条数据)
client.prepareDelete("twitter", "tweet", "1"); 5.查询索引库
Client client = TransportClient.builder().build()
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300)); // 第一个参数:要查找的内容 第二,三个参数:要查找的字段
QueryBuilder qb = QueryBuilders.multiMatchQuery("喧嚣", "content","message");
// twitter:索引名 tweet:索引类型
SearchResponse response = client.prepareSearch("twitter").setTypes("tweet").setQuery(qb)
//设置查询类型 SearchType.QUERY_AND_FETCH:全部获取
.setSearchType(SearchType.DFS_QUERY_AND_FETCH).execute().actionGet(); SearchHits hits = response.getHits();
if (hits.totalHits() > 0) {
for (SearchHit hit : hits) {
System.out.println("score:" + hit.getScore() + ":\t" + hit.getSource());// .get("title")
}
} else {
System.out.println("搜到0条结果");
}
client.close(); 6.刷新索引
//刷新所有
client.admin().indices().prepareRefresh().get();
//刷新某一个
client.admin().indices().prepareRefresh("twitter").get();
//刷新某个类型
client.admin().indices().prepareRefresh("twitter","tweet").get(); 7.更新索引数据
//更新索引(根据索引,类型,id)
UpdateRequest updateRequest = new UpdateRequest();
updateRequest.index("twitter");
updateRequest.type("tweet");
updateRequest.id("1");
updateRequest.doc(jsonBuilder().startObject().field("content", "如果我说爱我没有如果").endObject());
client.update(updateRequest).get();

UpdateRequest updateRequest = new UpdateRequest("twitter", "tweet", "1")
.doc(jsonBuilder().startObject().field("content", "如果我说爱我没有如果").endObject());
client.update(updateRequest).get(); 8.插入更新
//插入更新(如果不存在id为3的则插入content为IndexRequest的内容,如果存在则更新content为UpdateRequest的内容)
IndexRequest indexRequest = new IndexRequest("twitter", "tweet", "3")
.source(jsonBuilder().startObject()
.field("content", "每当我迷失在黑夜里")
.endObject());
UpdateRequest updateRequest2 = new UpdateRequest("twitter", "tweet", "3")
.doc(jsonBuilder().startObject()
.field("content", "请照亮我前行")
.endObject())
.upsert(indexRequest);
client.update(updateRequest2).get();
client.close();

elasticsearch java索引的增删改查的更多相关文章

  1. elasticsearch索引的增删改查入门

    为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful接口URL的格式: http://localhost:9200/<index>/&l ...

  2. java DMO及增删改查代码的自动生成

    在web开发过程中,尤其是后台管理系统的开发中,少不了增删改成的基础操作,原来我自己的做法是一份一份的拷贝粘贴,然后修改其中的不同,然而这样既枯燥无味又浪费了大量的时间,所以根据自己项目结构的特点写了 ...

  3. 【简易版】Java ArrayList(增删改查)

    1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: (1)动态的增加和减少元素 (2)实现了ICollectio ...

  4. 百度鹰眼Java接口调用增删改查实例

    因感觉百度鹰眼的使用场景比较符合实际业务,于是对百度鹰眼做了简单功能调试.刚开始使用springframework封装的RestTemplate,但是测试提示ak参数不存在.后又试了几种方法,均提示a ...

  5. Java学生信息增删改查(并没用数据库)

    一个泛型的应用,Java版本增删改查,写的简陋,望批评指正 2016-07-02 很久前写的一个程序了.拿出来存一下,不是为了展示啥,自己用的时候还可以看看.写的很粗糙. import java.io ...

  6. MongoDB(二)-- Java API 实现增删改查

    一.下载jar包 http://central.maven.org/maven2/org/mongodb/mongo-java-driver/ 二.代码实现 package com.xbq.mongo ...

  7. LR接口测试---Java Vuser之增删改查

    import lrapi.lr; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...

  8. MongoDB(六)java操作mongodb增删改查

    java操作mysql数据库的代码我们已经了如指掌了.增删改查,java对mongodb数据库也是类似的操作,先是数据库连接.再是进行操作. 首先我们进入进入admin数据库.然后建立自己的数据库te ...

  9. 列表(索引切片 增删改查 嵌套) range 元组的初识

    li = ["alex", "WuSir", "ritian", "barry", "wenzhou" ...

随机推荐

  1. wstngfw中配置snort

    wstngfw中配置snort 概述 Snort是入侵检测和预防系统.它可以将检测到的网络事件记录到日志并阻止它们.Snort使用称为规则的检测签名进行操作. Snort规则可以由用户自定义创建,或者 ...

  2. [NOIP2018模拟赛10.18]自闭报告

    闲扯 这一天,菜鸡RyeCatcher又想起来了被毒瘤题支配的恐惧 今天比较好玩,还是ljy提醒才发现文件夹里有题面...不知道外面的人什么时候才发现 看完了题面,又回到了雅礼啥题也不会写的感觉 T1 ...

  3. java集合的作用

    从架构的方面来理解,可能稍微容易一点.在编程中,需要管理很多对象集.比如某班全部同学,某个公司所有人员资料等.要管理这些资料,java必须提供某种数据结构支持.由于时间,空间,安全的考虑,有各种不同的 ...

  4. VBA宏注释(四)

    注释用于记录程序逻辑和用户信息,其他程序员将来可以阅读并理解相同的代码无缝工作. 它包括由开发者,修改者以及还可以包括合并逻辑的信息. 解释器在执行时忽略注释. VBA中的注释用两种方法表示,它们分别 ...

  5. Android ANR总结

    1.ANR定义 ANR的全称是application not responding,是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间未能得到有效响应或者响 ...

  6. C++ 语句函数再探

    1. 表达式只计算,抛弃计算结果: 2. 空语句什么也不做: 3.switch case语句漏写break,将会从匹配到的情况开始执行,直到语句结束 int main() { ; i + ; //表达 ...

  7. 13.MyBatis注解式开发

    mybatis 的注解,主要是用于替换映射文件.而映射文件中无非存放着增.删.改.查 的 SQL 映射标签.所以,mybatis 注解,就是要替换映射文件中的 SQL 标签. mybatis 官方文档 ...

  8. linux:# vi /etc/profile -bash: vi: command not found 的解决办法

    /bin/vi /etc/profile 直接用全路径vi,linux下一切皆文件,进去把profile文件内容改一下,一定是profile出了问题 export JAVA_HOME=/usr/jav ...

  9. 【shell】shell基础

    一.数据类型 1.shell变量 运行shell时,会同时存在三种变量: 1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量. 2) 环 ...

  10. 爬虫必备的web知识

    爬虫定义.分类和流程 爬虫的定义: 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序.爬虫就是模拟浏览器的行为,越像越好 ...