es是什么意思java_Elasticsearch----java操作ES
项目创建
添加依赖
org.springframework.boot
spring-boot-starter-data-elasticsearch
2.1.7.RELEASE
org.elasticsearch.client
elasticsearch-rest-high-level-client
6.2.1
使用
1、application配置
xuecheng:
elasticsearch:
hostlist: ${eshostlist:127.0.0.1:9200} #多个结点中间用逗号分隔
2、配置Elasticsearch
使用一个client即可,我们使用restHighLevelClient
@Configuration
public class ElasticsearchConfig {
@Value("${xuecheng.elasticsearch.hostlist}")
private String hostlist;
@SuppressWarnings("all")
@Bean
public RestHighLevelClient restHighLevelClient(){
//解析hostlist配置信息
String[] split = hostlist.split(",");
//创建HttpHost数组,其中存放es主机和端口的配置信息
HttpHost[] httpHostArray = new HttpHost[split.length];
for(int i=0;i
String item = split[i];
httpHostArray[i] = new HttpHost(item.split(":")[0], Integer.parseInt(item.split(":")[1]), "http");
}
//创建RestHighLevelClient客户端
return new RestHighLevelClient(RestClient.builder(httpHostArray));
}
//项目主要使用RestHighLevelClient,对于低级的客户端暂时不用
@SuppressWarnings("all")
@Bean
public RestClient restClient(){
//解析hostlist配置信息
String[] split = hostlist.split(",");
//创建HttpHost数组,其中存放es主机和端口的配置信息
HttpHost[] httpHostArray = new HttpHost[split.length];
for(int i=0;i
String item = split[i];
httpHostArray[i] = new HttpHost(item.split(":")[0], Integer.parseInt(item.split(":")[1]), "http");
}
return RestClient.builder(httpHostArray).build();
}
}
3、测试
@SpringBootTest
@RunWith(SpringRunner.class)
public class TestIndex {
@Autowired
RestHighLevelClient client;
//测试中没有使用restClient
@Autowired
RestClient restClient;
//创建索引库
@Test
public void testCreateIndex() throws IOException {
//创建索引对象
CreateIndexRequest createIndexRequest = new CreateIndexRequest("xc_course");
//设置参数
createIndexRequest.settings(Settings.builder().put("number_of_shards", "1").put("number_of_replicas", "0"));
//指定映射
createIndexRequest.mapping("doc", "{\n" +
" \"properties\": {\n" +
" \"name\": {\n" +
" \"type\": \"text\"\n" +
" },\n" +
" \"description\": {\n" +
" \"type\": \"text\"\n" +
" },\n" +
" \"studymodel\": {\n" +
" \"type\": \"keyword\"\n" +
" },\n" +
" \"pic\":{\n" +
" \t\"type\":\"text\"\n" +
" }\n" +
" }\n" +
"}", XContentType.JSON);
//操作索引的客户端
IndicesClient indices = client.indices();
//执行创建索引库
CreateIndexResponse createIndexResponse = indices.create(createIndexRequest);
//得到响应
boolean acknowledged = createIndexResponse.isAcknowledged();
System.out.println(acknowledged);
}
//删除索引库
@Test
public void testDeleteIndex() throws IOException {
//删除索引对象
DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest("xc_course");
//操作索引的客户端
IndicesClient indices = client.indices();
//执行删除索引
DeleteIndexResponse delete = indices.delete(deleteIndexRequest);
//得到响应
boolean acknowledged = delete.isAcknowledged();
System.out.println(acknowledged);
}
//添加文档
@Test
public void testAddDoc() throws IOException {
//文档内容
//准备json数据
Map jsonMap = new HashMap<>();
jsonMap.put("name", "spring cloud实战");
jsonMap.put("description", "本课程主要从四个章节进行讲解: 1.微服务架构入门 2.spring cloud 基础入门 3.实战Spring Boot 4.注册中心eureka。");
jsonMap.put("studymodel", "201001");
jsonMap.put("pic", "http://xx/xx/abd.png");
//SimpleDateFormat dateFormat =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//jsonMap.put("timestamp", dateFormat.format(new Date()));
//创建索引创建对象
IndexRequest indexRequest = new IndexRequest("xc_course", "doc");
//文档内容
indexRequest.source(jsonMap);
//通过client进行http的请求
IndexResponse indexResponse = client.index(indexRequest);
DocWriteResponse.Result result = indexResponse.getResult();
System.out.println(result);
}
//查询文档
@Test
public void testGetDoc() throws IOException {
//查询请求对象
GetRequest getRequest = new GetRequest("xc_course", "doc", "jxhqfW4B7IA_qgGLOu2z");
GetResponse getResponse = client.get(getRequest);
//得到文档的内容
Map sourceAsMap = getResponse.getSourceAsMap();
System.out.println(sourceAsMap);
}
//更新文档(局部更新)
@Test
public void updateDoc() throws IOException {
UpdateRequest updateRequest = new UpdateRequest("xc_course", "doc", "jxhqfW4B7IA_qgGLOu2z");
Map map = new HashMap<>();
map.put("name", "spring");
updateRequest.doc(map);
UpdateResponse update = client.update(updateRequest);
RestStatus status = update.status();
System.out.println(status);
}
//根据id删除文档
@Test
public void testDelDoc() throws IOException {
//删除文档id
String id = "jxhqfW4B7IA_qgGLOu2z";
//删除索引请求对象
DeleteRequest deleteRequest = new DeleteRequest("xc_course", "doc", id);
//响应对象
DeleteResponse deleteResponse = client.delete(deleteRequest);
//获取响应结果
DocWriteResponse.Result result = deleteResponse.getResult();
System.out.println(result);
}
}
es是什么意思java_Elasticsearch----java操作ES相关推荐
- Elasticsearch笔记五之java操作es
Java操作es集群步骤1:配置集群对象信息:2:创建客户端:3:查看集群信息 1:集群名称 默认集群名为elasticsearch,如果集群名称和指定的不一致则在使用节点资源时会报错. 2:嗅探功能 ...
- Elasticsearch 之java操作es
https://blog.csdn.net/ty4315/article/details/52434296 Java操作es集群步骤1:配置集群对象信息:2:创建客户端:3:查看集群信息 1:集群名称 ...
- java 操作 ES 的方式 整理总结
一.操作ES 的方式大题有这么三种 1. TransportClinet客户端 2. REST Client 3. SpringDateES 二.第一种 TransportClinet客户端 首先要讲 ...
- ElasticSearch之——Java操作ES实例(基于ES-2.3.0)
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/78758691 今天,我们就来看看如何利用Java API来操作ES的数据,这里不讲 ...
- java操作es之各种高级查询
目录 一.springboot整合es 1.1 pom依赖 1.2 yml配置 1.3 创建索引 1.4 创建映射 1.5 写入数据 二.Java API操作ES 2.1 查询全部 2.2 精准匹配 ...
- 使用java操作ES
文章目录 一.Java连接ES 1.1.引入依赖包 1.2.创建ES客户端 1.3.测试连接 二.操作索引 2.1.创建索引 2.2.`exists & delete` 2.2.1.exist ...
- java操作es查询数据总量
通过java查询es的数据总量返回数据接口 public long rangeCount(String indexName, String timeFileds, String vehicleidFi ...
- java操作es聚合操作并显示其他字段_java使用elasticsearch分组进行聚合查询过程解析...
这篇文章主要介绍了java使用elasticsearch分组进行聚合查询过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 java连接elas ...
- java操作es聚合操作并显示其他字段_java使用elasticsearch分组进行聚合查询(group by)-项目中实际应用...
java连接elasticsearch 进行聚合查询进行相应操作 一:对单个字段进行分组求和 1.表结构图片: 根据任务id分组,分别统计出每个任务id下有多少个文字标题 1.SQL:select i ...
- JAVA操作ES中的BoolQueryBuilder 查询方法
一,创建es的连接 public TransportClient transportClient(){ Settings settings = Settings.builder() ...
最新文章
- Linux课程第六天学习笔记
- 监控Spark应用方法简介
- java中多态的例子_java中的多态案例
- cloudfoundry servicce-broker部署错误分析
- 【笔记】解析MP3文件信息
- Arduino学习笔记6
- 【常用软件下载地址】java开发官方资源下载网址大全(持续更新)
- Python — — turtle 常用代码
- facebook第三方登陆
- 关于AE动画文件如何导出 cocos-creater所需的序列帧动画的方法
- 通过bower 下载管理angularjs
- 【FPGA】时钟信号几种设计方法
- google浏览器(chrome)登录、同步
- 一分耕耘一分收获,精诚所至金石为开
- mysql 分类标签表设计_如何进行文章分类和标签的数据库设计
- inet_addr源代码
- Oracle导入dmp 文件
- C#中调用WIN32API函数
- 做生信分析平台需要什么配置的服务器?生信分析平台服务器配置建议
- 了解Spring事务
热门文章
- 最新论文笔记(+15):Redactable Blockchain Protocols with Instant Redaction /IACR Cryptol.ePrint Arch 2021
- PHP语言实现网站登录功能
- 香槟分校计算机科学排名,伊利诺伊大学香槟分校计算机科学与信息系统世界排名2018年最新排名第28(QS世界排名)...
- ipad远程控制家里的个人电脑(超级简单)
- LabVIEW可重入VI,VI模板和动态VI之间的差异
- Java实体类映射工具MapStruct
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘****‘
- 编写 Matlab mexFunction (C mex)
- 2022-12-09 Ubuntu16.4中访问另一台Ubuntu samba共享出来的目录方法
- 【SQLite】SQLite简介