项目创建

添加依赖

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相关推荐

  1. Elasticsearch笔记五之java操作es

    Java操作es集群步骤1:配置集群对象信息:2:创建客户端:3:查看集群信息 1:集群名称 默认集群名为elasticsearch,如果集群名称和指定的不一致则在使用节点资源时会报错. 2:嗅探功能 ...

  2. Elasticsearch 之java操作es

    https://blog.csdn.net/ty4315/article/details/52434296 Java操作es集群步骤1:配置集群对象信息:2:创建客户端:3:查看集群信息 1:集群名称 ...

  3. java 操作 ES 的方式 整理总结

    一.操作ES 的方式大题有这么三种 1. TransportClinet客户端 2. REST Client 3. SpringDateES 二.第一种 TransportClinet客户端 首先要讲 ...

  4. ElasticSearch之——Java操作ES实例(基于ES-2.3.0)

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/78758691 今天,我们就来看看如何利用Java API来操作ES的数据,这里不讲 ...

  5. java操作es之各种高级查询

    目录 一.springboot整合es 1.1 pom依赖 1.2 yml配置 1.3 创建索引 1.4 创建映射 1.5 写入数据 二.Java API操作ES 2.1 查询全部 2.2 精准匹配 ...

  6. 使用java操作ES

    文章目录 一.Java连接ES 1.1.引入依赖包 1.2.创建ES客户端 1.3.测试连接 二.操作索引 2.1.创建索引 2.2.`exists & delete` 2.2.1.exist ...

  7. java操作es查询数据总量

    通过java查询es的数据总量返回数据接口 public long rangeCount(String indexName, String timeFileds, String vehicleidFi ...

  8. java操作es聚合操作并显示其他字段_java使用elasticsearch分组进行聚合查询过程解析...

    这篇文章主要介绍了java使用elasticsearch分组进行聚合查询过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 java连接elas ...

  9. java操作es聚合操作并显示其他字段_java使用elasticsearch分组进行聚合查询(group by)-项目中实际应用...

    java连接elasticsearch 进行聚合查询进行相应操作 一:对单个字段进行分组求和 1.表结构图片: 根据任务id分组,分别统计出每个任务id下有多少个文字标题 1.SQL:select i ...

  10. JAVA操作ES中的BoolQueryBuilder 查询方法

    一,创建es的连接 public TransportClient transportClient(){     Settings settings = Settings.builder()       ...

最新文章

  1. Linux课程第六天学习笔记
  2. 监控Spark应用方法简介
  3. java中多态的例子_java中的多态案例
  4. cloudfoundry servicce-broker部署错误分析
  5. 【笔记】解析MP3文件信息
  6. Arduino学习笔记6
  7. 【常用软件下载地址】java开发官方资源下载网址大全(持续更新)
  8. Python — — turtle 常用代码
  9. facebook第三方登陆
  10. 关于AE动画文件如何导出 cocos-creater所需的序列帧动画的方法
  11. 通过bower 下载管理angularjs
  12. 【FPGA】时钟信号几种设计方法
  13. google浏览器(chrome)登录、同步
  14. 一分耕耘一分收获,精诚所至金石为开
  15. mysql 分类标签表设计_如何进行文章分类和标签的数据库设计
  16. inet_addr源代码
  17. Oracle导入dmp 文件
  18. C#中调用WIN32API函数
  19. 做生信分析平台需要什么配置的服务器?生信分析平台服务器配置建议
  20. 了解Spring事务

热门文章

  1. 最新论文笔记(+15):Redactable Blockchain Protocols with Instant Redaction /IACR Cryptol.ePrint Arch 2021
  2. PHP语言实现网站登录功能
  3. 香槟分校计算机科学排名,伊利诺伊大学香槟分校计算机科学与信息系统世界排名2018年最新排名第28(QS世界排名)...
  4. ipad远程控制家里的个人电脑(超级简单)
  5. LabVIEW可重入VI,VI模板和动态VI之间的差异
  6. Java实体类映射工具MapStruct
  7. org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘****‘
  8. 编写 Matlab mexFunction (C mex)
  9. 2022-12-09 Ubuntu16.4中访问另一台Ubuntu samba共享出来的目录方法
  10. 【SQLite】SQLite简介